是否有任何TSQL脚本用于删除SQLServer 2008数据库中的所有外键约束和唯一约束 ?
答案 0 :(得分: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
答案 1 :(得分:0)
使用以下命令生成脚本。将生成的脚本复制并粘贴到新查询窗口,以删除所有Fk和Unique约束。
从INFORMATION_SCHEMA.TABLE_CONSTRAINTS中选择'ALTER TABLE'+ table_name +'DROP CONSTRAINT'+ CONSTRAINT_NAME 其中CONSTRAINT_TYPE('unique','FOREIGN KEY')