2015-11-04 52 views
0

是否有方法在一條語句中刪除記錄及其子元素?我正在查找可以檢查FK的聲明,自動刪除一次性父母和小孩的記錄。例如,如果我有父表客戶,並且有多個子表(例如帳戶,發票(帶有大的子表費用)),我可以刪除CustomerID = 123,這也會刪除所有子級和子級記錄嗎?使用FK約束SP刪除子記錄給定TableName,ID ColumnName和ID

理想情況下是SP,我傳遞的表名,和PK的名字和記錄ID(例如客戶,CustomersID,1234

可能TSQL Cascade delete for child records?可以適用於目的之上,但不知道如何。

我我使用SQL Server 2012

感謝

+0

級聯刪除父級,如果子記錄是刪除但不是父記錄的所有子級記錄。不幸的是,你的問題沒有銀彈。 –

回答

1

你允許下降&重建外鍵,按您的需求呢?我想你可以設置他們「ON DELETE CASCADE」 FO無論是孩子還是大孩子的桌子,都可以做這份工作嗎?

這裏是一個示例設置了一篇文章 - Using DELETE CASCADE Option for Foreign Keys

你指出的是另一個故事,我認爲解決的辦法 - 它處理一個表的情況下的嵌套親子關係水平的數量是動態的,所以這就是爲什麼它在同一張表上使用遞歸CTE的原因。