SQLServer 2008 データベースのすべての外部キー制約と一意制約を削除するための TSQL スクリプトはありますか?
質問する
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 制約を削除します。
CONSTRAINT_TYPE in ('unique','FOREIGN KEY') である INFORMATION_SCHEMA.TABLE_CONSTRAINTS から 'ALTER TABLE' + table_name + 'DROP CONSTRAINT' + CONSTRAINT_NAME を選択します。
于 2012-09-02T13:01:42.093 に答える