適用対象: SQL Server 2016 (13.x) 以降のバージョン
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
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」を参照してください。
Permissions
テーブルに対する ALTER 権限が必要です。
SQL Server Management Studio を使用する
INSERTステートメントと UPDATE ステートメントの check 制約を無効にするには
オブジェクト エクスプローラーで、制約が設定されているテーブルを展開し、 [制約] フォルダーを展開します。
制約を右クリックし、 [変更]をクリックします。
Table Designerのグリッドで「Enforce For INSERTs And UPDATEs」をクリックし、ドロップダウンリストから「No」を選択してください。
をクリックしてを閉じます。
Transact-SQL の使用
INSERTステートメントと UPDATE ステートメントの check 制約を無効にするには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
[標準] ツール バーの [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行]をクリックします。
USE AdventureWorks2022; GO ALTER TABLE Purchasing.PurchaseOrderHeader NOCHECK CONSTRAINT CK_PurchaseOrderHeader_Freight; GO