SQL Server では外部キー制約の無効化と有効化がサポートされていますか? それとも、制約を無効にしdrop
てから再度有効にするcreate
しか選択肢がないのでしょうか?
ベストアンサー1
データベース内のすべての制約を無効にする場合は、次のコードを実行します。
-- disable all constraints
EXEC sp_MSforeachtable "ALTER TABLE ? NOCHECK CONSTRAINT all"
再度オンにするには、次のコマンドを実行します: (もちろん、印刷はオプションであり、テーブルを一覧表示するだけです)
-- enable all constraints
exec sp_MSforeachtable @command1="print '?'", @command2="ALTER TABLE ? WITH CHECK CHECK CONSTRAINT all"
あるデータベースから別のデータベースにデータを入力するときに便利です。制約を削除するよりもはるかに優れたアプローチです。おっしゃるとおり、データベース内のすべてのデータを削除して再入力する場合 (テスト環境など) に便利です。
すべてのデータを削除する場合は、この解決策役に立つ。
また、すべてのトリガーを無効にすると便利な場合もあります。完全な解決策を見ることができます。ここ。