這是我的要求,我試圖詳細說明Adventure作品數據庫。刪除/截斷有外鍵的表中的記錄
我不得不刪除具有約束和外鍵關係Production.Product表的所有記錄,並從其它表填充數據(目前我使用的這個說法在表中複製數據)
SELECT * INTO Product_temp
FROM [AdventureWorks].[Production].[Product]
所以我必須刪除產品表中的所有記錄,然後從product_temp中插入。
我發現這個答案,但我無法找到在SQL SERVER此選項2005
SQL Server 2005 Cascading Delete
好了,你不能只是刪除的東西的路程,如果它是由一個外鍵引用 - 這是具有FK關係的整點!因此,您需要做的是:刪除引用「Product」表的所有FK約束,然後刪除所有行並插入新行。但是,在插入新數據之後,您將如何處理可能會重新生成不再存在的產品的數據? – 2012-02-12 15:44:02
@marc_s在我的項目中,我們爲SAP產品錶帶來了SAP的新數據,我的客戶想要刪除全部4個(在我的項目中4個表是主表)主表,並再次插入新數據的所有記錄。請讓我知道你對此的看法,這可以以更好的方式嗎?我會向我的客戶提出同樣的建議。 – Zerotoinfinity 2012-02-12 15:47:06
你完全替換所有行嗎?或者你有很多行會保持不變,或者只是改變一兩列?在這種情況下,只需「插入」Products表可能會更聰明 - 更新需要更新的內容,插入新行,刪除需要刪除的行數 - 而不是使用大錘「刪除所有內容」的方法。 ... – 2012-02-12 16:55:48