使用FK约束SP删除子记录给定TableName,ID ColumnName和ID

时间:2015-11-04 22:31:55

标签: sql sql-server

有没有办法在一个语句中删除记录及其子项?我正在寻找一个声明,可以检查FK一次性自动删除父记录和子记录。例如,如果我有父表Customers,并且有多个子表,例如Accounts,发票(带有子子表费用),我可以删除CustomerID = 123,它还会删除所有子记录和子记录吗?

理想情况下,我会传递tablename,PK名称和记录ID(例如Customers,CustomersID,1234

可能TSQL Cascade delete for child records?可以根据上述目的进行调整,但不确定如何。

我正在使用sql server 2012。

由于

1 个答案:

答案 0 :(得分:1)

你是否可以放弃&根据您的需要重新创建外键?我想你可以用' ON DELETE CASCADE'来设置它们。对于孩子和大孩子的桌子,那可以做这个工作吗?

以下是一篇包含示例设置的文章 - Using DELETE CASCADE Option for Foreign Keys

你指出的解决方案是我认为的另一个故事 - 它处理单个表的情况,其中嵌套父子关系的级别数是动态的,因此这就是它在同一个表上使用递归CTE的原因。