首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 语句 怎么同时删除两个表 里的行

2012-02-09 
sql 语句 如何同时删除两个表 里的行Order表中键值为O_IDOrderDetail表中有O_ID列想删除Order表中的一些行

sql 语句 如何同时删除两个表 里的行
Order   表中键值为   O_ID   OrderDetail   表中有   O_ID   列  

想删除   Order   表中的   一些行   同时   删除     Orderdetail表   中   与Order表的键值一样的行。

如何写这个sql   语句?
delete   from   Order,Orderdetail   where?

不要用存储过程

[解决办法]
写到事务里面?
set xact_abort on
begin tran
delete Order where ……
delete Orderdetail where ……
commit tran

[解决办法]
貌似order、Orderdetail有主外键关系啊
那就先delete Orderdetail再delete Order
[解决办法]
级联删除,可以设置表order的约束; on delete cascade;


建个触发器;
create trigger tr_delete
on order
instead of delete
as
begin
delete from Orderdetail where id in(select id from deleted)
delete from Order where id in(select id from deleted)
end
go


[解决办法]
那就这样写吧。
set xact_abort on
begin tran
delete Orderdetail where O_ID in ……
delete Order where O_ID in ……
commit tran

热点排行