あなたの例に基づいて、私も試しました:
- 外部キーをドロップして再作成します。
- テーブルを削除して再作成します。
次に、コマンドの中にあることに気付きました:
NOT FOR REPLICATION
プレ>NOT FOR REPLICATION で作成された制約は、常に信頼されていないようです。
Books Online からの引用 :
IS_NOT_TRUSTED
のようです 設定はレプリケーションのみに関連IS_NOT_FOR_REPLICATION
の影響 .作業しているサーバーに制約が適用されている限り、問題ないはずです。だから私は先に進み、それを確認しました:SELECT name, is_disabled, is_not_trusted FROM sys.foreign_keys WHERE name = 'FK_Product_ProductKeyId' name is_disabled is_not_trusted FK_Product_ProductKeyId 0 1 INSERT INTO dbo.Sale VALUES (2, GETDATE(), 1.00) Msg 547, Level 16, State 0, Line 1 The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Product_ProductKeyId". The conflict occurred in database "_Scratch", table "dbo.Product", column 'ProductKeyId'. The statement has been terminated.
プレ>それでも
IS_NOT_TRUSTED = 0
を見たい場合 安心のために、NOT FOR REPLICATION
なしで外部キーを再作成するだけです .疑問に思っている方のために、私は CHECK 制約に対しても同じ効果を検証しました。