0

MSDN マガジンでこれを見ました。Foreignkeys を一時的に無効にしたかったのですが、次のコードを使用して実行できますか?削除する必要はありませんが、もう一度有効にしたかったので一時的に無効にします

ALTER TABLE Orders
NOCHECK CONSTRAINT 
    FK_Orders_Customers
4

2 に答える 2

3

-- 制約を無効にします。

ALTER TABLE Orders NOCHECK CONSTRAINT FK_Orders_Customers

-- 制約を再度有効にします。

ALTER TABLE Orders WITH CHECK CHECK CONSTRAINT FK_Orders_Customers
于 2012-06-21T06:29:05.150 に答える
3

はい、ALTER TABLE [table] CHECK / NOCHECK CONSTRAINT *FK_Name*ご想像のとおり、外部キー制約チェックを有効または無効にします。また、制約に明示的に名前を付けることが良い考えである理由も証明しています。つまり、 のような名前を避けるためFK__TABLE__A2A64E930CBAE877です。

外部キー制約を無効にしてデータを挿入/変更した後、単に CHECK CONSTRAINT で有効にした場合、SQL は制約を信頼しないことに注意してください。再有効化中に SQL で制約を再チェックするには、次の手順を実行する必要があります。

ALTER TABLE [table] WITH CHECK CHECK CONSTRAINT *FK_Name*

で違反を確認できます

DBCC CHECKCONSTRAINTS ([table])

参照 : http://msdn.microsoft.com/en-us/library/ms177456(v=sql.90).aspx (制約の無効化) およびhttp://geekswithblogs.net/dturner/archive/2011/01も参照してください。 /31/sql-constraints-check-and-nocheck.aspx

于 2012-06-21T06:29:42.850 に答える