使用MSSQL2005,如果我先截?cái)嘧颖恚ň哂蠪K關(guān)系主鍵的表),是否可以截?cái)嗑哂型怄I約束的表?我知道我可以使用DELETE無(wú)where子句,然后RESEED使用標(biāo)識(shí)(或)刪除FK,截?cái)啾?,然后重新?chuàng)建FK。我以為只要我在父表之前將子表截?cái)?,就可以不做上述任何一個(gè)選擇,但是我會(huì)收到此錯(cuò)誤:無(wú)法截?cái)啾?#39;TableName',因?yàn)樗驯籉OREIGN KEY約束引用。
3 回答

HUH函數(shù)
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
正確; 您不能截?cái)嗑哂蠪K約束的表。
通常,我的處理過(guò)程是:
擺脫約束
Trunc表
重新創(chuàng)建約束。
(當(dāng)然,這全都在交易中。)
當(dāng)然,這僅在孩子已被截?cái)嗟那闆r下適用。否則,我會(huì)走另一條路,完全取決于我的數(shù)據(jù)。(這里有太多變量。)

慕的地6264312
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
DELETE FROM TABLENAME
DBCC CHECKIDENT ('DATABASENAME.dbo.TABLENAME',RESEED, 0)
請(qǐng)注意,如果您擁有數(shù)百萬(wàn)條記錄,這可能不是您想要的,因?yàn)樗浅B?/p>
- 3 回答
- 0 關(guān)注
- 794 瀏覽