ホームページ >データベース >mysql チュートリアル >MS SQL でデータベース制約を一時的に無効にして再度有効にする方法は?

MS SQL でデータベース制約を一時的に無効にして再度有効にする方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-10 10:25:42530ブラウズ

How to Temporarily Disable and Re-enable Database Constraints in MS SQL?

MS SQL Server でのデータベース制約の一時管理

Microsoft SQL Server で制約を一時的に無効にすると、特にデータ転送時のデータベース操作を効率化できます。 このガイドでは、制約を一時的に無効化し、再度有効にする方法について詳しく説明します。

制約の無効化

個々のテーブル制約の無効化 (ALTER TABLE):

単一テーブルの制約を無効にするには、次のコマンドを使用します:

<code class="language-sql">ALTER TABLE tableName NOCHECK CONSTRAINT ALL;</code>

データベース全体の制約の無効化 (sp_msforeachtable):

このストアド プロシージャは、データベース内のすべてのテーブルの制約を無効にします:

<code class="language-sql">EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL';</code>

制約を再度有効にする

個々のテーブル制約の再有効化 (ALTER TABLE):

次のコマンドを使用して、特定のテーブルの制約を再度有効にします:

<code class="language-sql">ALTER TABLE tableName WITH CHECK CHECK CONSTRAINT ALL;</code>

データベース全体の制約の再有効化 (sp_msforeachtable):

このストアド プロシージャを使用して、データベース内のすべてのテーブルの制約を再度有効にします:

<code class="language-sql">EXEC sp_msforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL';</code>

実際の応用

次の例は、データ コピー操作中に制約を一時的に無効にして再度有効にするプロセスを示しています。

<code class="language-sql">-- Disable constraints on TableA and TableB
ALTER TABLE TableA NOCHECK CONSTRAINT ALL;
ALTER TABLE TableB NOCHECK CONSTRAINT ALL;

-- Copy data from TableA to TableB
INSERT INTO TableB SELECT * FROM TableA;

-- Re-enable constraints on TableA and TableB
ALTER TABLE TableA WITH CHECK CHECK CONSTRAINT ALL;
ALTER TABLE TableB WITH CHECK CHECK CONSTRAINT ALL;</code>

以上がMS SQL でデータベース制約を一時的に無効にして再度有効にする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。