是否有任何 TSQL 脚本用于删除SQLServer 2008 数据库中的所有外键约束和唯一约束?
问问题
1027 次
2 回答
0
您可以将系统表用于您的目的:
sys.foreign_keys
sys.key_constraints
sys.check_constraints
sys.default_constraints
上面的系统表在您的数据库上具有所有外键、约束和默认列表。
您可以为删除数据库的所有上述对象编写游标。你的光标必须像下面的查询:
DECLARE @Name NVARCHAR(250),
@Command NVARCHAR(1000)
DECLARE cCons CURSOR for
SELECT name
FROM sys.check_constraints
OPEN cCons
FETCH NEXT FROM cCons INTO @Name
WHILE @@Fetch_Status=0 BEGIN
SET @Command = 'DROP CONTRACT '+ @Name
EXEC(@Command)
FETCH NEXT FROM cCons INTO @Name
End
CLOSE cCons
DEALLOCATE cCons
于 2012-09-02T12:23:22.170 回答
0
使用以下命令生成脚本。将生成的脚本复制并粘贴到新的查询窗口以删除所有 Fk 和 Unique 约束。
从 INFORMATION_SCHEMA.TABLE_CONSTRAINTS 中选择 'ALTER TABLE' + table_name + 'DROP CONSTRAINT' + CONSTRAINT_NAME 其中 CONSTRAINT_TYPE in ('unique','FOREIGN KEY')
于 2012-09-02T13:01:42.093 回答