Sql Server查詢,關閉外鍵約束的sql


環境:SQL SERVER2008

情況:有時候,刪除表數據(delete方式),會受到外鍵約束,導致刪除失敗

注意:該方式,僅對delete能用,truncate無效(truncate刪除數據,還是會受到外鍵影響,除非刪除外鍵,然后刪除數據,再重新建立外鍵約束,網上有人說可以,但我測試過,依然提示外鍵約束問題)

解決辦法:關閉檢查約束 → 刪除數據 → 約束打開

1)查詢出,關閉外鍵約束的SQL

SELECT 
'ALTER TABLE ' + O.NAME + ' NOCHECK CONSTRAINT [' + F.NAME + '];' AS COMMAND 
FROM 
SYS.FOREIGN_KEYS F INNER JOIN SYS.ALL_OBJECTS O ON F.PARENT_OBJECT_ID = O.OBJECT_ID 
WHERE O.TYPE = 'U' AND F.TYPE = 'F';

2)查詢出,打開外鍵約束的SQL  

SELECT 
'ALTER TABLE ' + O.NAME + ' CHECK CONSTRAINT [' + F.NAME + '];' AS COMMAND 
FROM 
SYS.FOREIGN_KEYS F INNER JOIN SYS.ALL_OBJECTS O ON F.PARENT_OBJECT_ID = O.OBJECT_ID 
WHERE O.TYPE = 'U' AND F.TYPE = 'F';

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM