0

是否有任何 TSQL 脚本用于删除SQLServer 2008 数据库中的所有外键约束和唯一约束?

4

2 回答 2

0

您可以将系统表用于您的目的:

  1. sys.foreign_keys
  2. sys.key_constraints
  3. sys.check_constraints
  4. 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 回答