日期:2014-05-17  浏览次数:20554 次

如何用一条SQL搞定5个表的记录删除?
机器ID是5个表中的主健,现在要删除5个表中机器ID为001及002的所有记录(5个表中都有001及002的相关记录)如何用一条SQL搞定5个表的记录删除?
提示:如果用多条SQL,可能是这样:
DELETE FROM TB1 WHERE 机器ID='001' OR 机器ID='002'
DELETE FROM TB2 WHERE 机器ID='001' OR 机器ID='002'
DELETE FROM TB3 WHERE 机器ID='001' OR 机器ID='002'
.........

------解决方案--------------------
没有办法一次性操作多个对象,就如不能一次性修改两个表中的值一样
这种情况只能一条一条的操作
------解决方案--------------------
为什么会有这种需求
若是为了保持一致性
请使用事务
BEGIN TRY
begin tran

DELETE FROM TB1 WHERE 机器ID='001' OR 机器ID='002'
DELETE FROM TB2 WHERE 机器ID='001' OR 机器ID='002'
DELETE FROM TB3 WHERE 机器ID='001' OR 机器ID='002'
......... 

commit tran
END TRY
BEGIN CATCH
ROLLBACK TRAN
END CATCH
GO