存储过程可以一次删掉多个数据吗?

jamesqsj 2003-08-22 09:34:37
我有两张表table1、table2.
在table1 中建立一个触发器:trg_delete
每次删除table1 中的用户时同时删除table2 中的用户。可是table2中用户删除时
会关联多个表,我有调用了事务。
我的触发器如下:
create trgDelete
on table1
for delete
as
declare @name varchar(30)
declrea @ID int
select @name =name from deleted
if exists(select ID from table2 where name =@name)
begin
select @ID =ID from table2 where name =@name
execute prcDelete @ID
end
return

我的存储过程是:
create procedure prcDelete
@ID int
as
begin transaction trnDelete
update message set ID =null where ID @ID
delete from group where ID =@ID
delete from table2 where ID =@ID
commit transaction trnDelete
return

可是上面的语句在删除多个数据时,table2中的数据只删除一个,请问要同时删除多个数据该怎么做?求大侠出手!多谢多谢!
...全文
65 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qquge 2003-09-24
  • 打赏
  • 举报
回复
学习!
jamesqsj 2003-08-22
  • 打赏
  • 举报
回复
可是我的两个表table1、table2中的ID只不一样啊?table2中的ID比table1中的ID大一。
CrazyFor 2003-08-22
  • 打赏
  • 举报
回复
TRY:

create trgDelete
on table1
for delete
as
declare @name varchar(30)
declrea @ID int

update message set ID =null from deleted,table2 where message.name=deleted.name and table2.id=deteled.id
delete from group from deleted,table2 where message.name=deleted.name and table2.id=deteled.id
delete from table2 from deleted,table2 where message.name=deleted.name and table2.id=deteled.id

return

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧