SQL Serverで外部キー制約の無効化と有効化はサポートされていますか?それとも、制約を適用drop
してから再create
制約する唯一のオプションですか?
データベース内のすべての制約を無効にする場合は、次のコードを実行するだけです。
-- 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"
あるデータベースから別のデータベースにデータを入力するときに便利だと思います。制約を削除するよりもはるかに優れたアプローチです。あなたが言ったように、それはデータベースにすべてのデータをドロップしてそれを再入力するときに便利です(例えばテスト環境で)。
すべてのデータを削除する場合は、このソリューションが役立つ場合があります。
また、すべてのトリガーを無効にすると便利な場合もあります。完全な解決策については、こちらをご覧ください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加