INSERT ステートメントまたは UPDATE ステートメントによる CHECK 制約の無効化
適用対象: SQL Server 2016 (13.x) 以降
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric 内の SQL データベース
SQL Server では、SQL Server Management Studio または Transact-SQL を使用して INSERT
および UPDATE
トランザクションの CHECK 制約を無効にできます。 CHECK 制約を無効にすると、今後列に行われる挿入または更新は、制約条件に対して検証されません。 新しいデータが既存の制約に違反することがわかっている場合、またはデータベース内の既存のデータのみに制約を適用する場合に、このオプションを使用します。
詳細については、「CHECK 制約」を参照してください。
Note
CHECK 制約は ALTER TABLE
ステートメントで有効または無効になります。これには常に、スキーマ変更ロック (Sch-M
) が必要です。 Sch-M ロックを使うと、テーブルへの同時アクセスが防止されます。 詳細については、「ロックと ALTER TABLE」を参照してください。
アクセス許可
テーブルに対する ALTER 権限が必要です。
SQL Server Management Studio を使用する
INSERT ステートメントおよび UPDATE ステートメントの実行中に CHECK 制約を無効にするには
オブジェクト エクスプローラーで、制約が設定されているテーブルを展開し、 [制約] フォルダーを展開します。
制約を右クリックし、 [変更]をクリックします。
テーブル デザイナーの下にあるグリッドで、 [INSERT および UPDATE に適用] をクリックし、ドロップダウン メニューの [いいえ] をクリックします。
[閉じる] をクリックします。
Transact-SQL の使用
INSERT ステートメントおよび UPDATE ステートメントの実行中に CHECK 制約を無効にするには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行]をクリックします。
USE AdventureWorks2022; GO ALTER TABLE Purchasing.PurchaseOrderHeader NOCHECK CONSTRAINT CK_PurchaseOrderHeader_Freight; GO