0

SQLServer 2008 データベースのすべての外部キー制約と一意制約を削除するための TSQL スクリプトはありますか?

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 制約を削除します。

CONSTRAINT_TYPE in ('unique','FOREIGN KEY') である INFORMATION_SCHEMA.TABLE_CONSTRAINTS から 'ALTER TABLE' + table_name + 'DROP CONSTRAINT' + CONSTRAINT_NAME を選択します。

于 2012-09-02T13:01:42.093 に答える