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

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

Mary-Kate Olsen
リリース: 2025-01-10 10:25:42
オリジナル
527 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート