當我試圖截斷表,我得到了錯誤信息如下,不能截斷表
**Cannot truncate table 'Locations' because it is being referenced by a FOREIGN KEY constraint.**
我不知道that..Anyone查詢幫助我。
當我試圖截斷表,我得到了錯誤信息如下,不能截斷表
**Cannot truncate table 'Locations' because it is being referenced by a FOREIGN KEY constraint.**
我不知道that..Anyone查詢幫助我。
爲什麼?
TRUNCATE之所以刪除所有記錄而沒有單獨檢查。
因此,DELETE FROM Locations將刪除每個記錄(並且這是事務日誌中記錄的內容),檢查是否違反了約束條件。
TRUNCATE TABLE位置不會執行此操作。執行單個截斷操作(並記錄),這就是爲什麼更快。
查看this article瞭解更多信息。
解決方法
最簡單的方法是刪除,而不是截斷。但是,如果這有很長的執行時間,並且可以安全地刪除約束,則可能需要編寫一個腳本來刪除約束,截斷表和創建約束。
有一點需要注意 - 當您截斷標識列時將被重置。當你刪除它沒有。因此,如果您執行刪除操作並且最後一個值爲242,則下一個值將爲243.
執行截斷操作的唯一方法是刪除關係。就個人而言 - 我只是刪除而不是刪除所有的關係,然後把它們放回去。
刪除表'location'的所有關係,然後嘗試... – 2013-04-10 09:32:19
有什麼不清楚的錯誤信息? – 2013-04-10 10:02:55