我正在根据以下查询创建与每个主表关联的历史表
SELECT TOP 0 * INTO HISTORY_TABLE FROM MASTER_TABLE
此查询创建一个名为
HISTORY_TABLE
的空表由与 MASTER_TABLE
中的列相似的列组成但约束应用于 MASTER_TABLE
.那么他们有什么方法可以不受限制地获取列吗?
最佳答案
这可能不是一个好主意,但这可以满足您的需求..
//This creates the table with constraints
SELECT TOP 0 * INTO HISTORY_TABLE FROM MASTER_TABLE
//This will drop all the constraints
DECLARE @database NVARCHAR(50)
DECLARE @table NVARCHAR(50)
DECLARE @sql NVARCHAR(255)
SET @database = 'databasename'
SET @table = 'HISTORY_TABLE'
WHILE EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE constraint_catalog=@database AND table_name=@table)
BEGIN
SELECT @sql = 'ALTER TABLE ' + @table + ' DROP CONSTRAINT ' + CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE constraint_catalog=@database AND table_name=@table
EXEC sp_executesql @sql
END
我希望这有帮助。
关于sql-server-2008 - 如何在 sql server 2008 中获得没有约束的表列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19853112/