【问题标题】:TSql script for deleting all foreign key constraints and unique constraints?用于删除所有外键约束和唯一约束的 TSql 脚本?
【发布时间】:2012-09-02 10:43:07
【问题描述】:

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

【问题讨论】:

标签: sql sql-server-2008 tsql


【解决方案1】:

您可以根据自己的目的使用系统表:

  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

【讨论】:

    【解决方案2】:

    使用以下命令生成脚本。将生成的脚本复制并粘贴到新的查询窗口以删除所有 Fk 和 Unique 约束。

    从 INFORMATION_SCHEMA.TABLE_CONSTRAINTS 中选择 'ALTER TABLE' + table_name + 'DROP CONSTRAINT' + CONSTRAINT_NAME 其中 CONSTRAINT_TYPE in ('unique','FOREIGN KEY')

    【讨论】:

      猜你喜欢
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多