当前位置: 代码迷 >> Sql Server >> 怎么用一条SQL搞定5个表的记录删除
  详细解决方案

怎么用一条SQL搞定5个表的记录删除

热度:64   发布时间:2016-04-24 23:24:40.0
如何用一条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
  相关解决方案