Rss & SiteMap

课外天地 李树青 http://www.njcie.com

李树青 论坛 南京 财经 课外天地
共3 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:[求助]SqlServer 实现oracle 中触发器 before delete

1楼
hj 发表于:2011/9/18 22:00:08

怎么用SqlServer实现 ,在删除一个表的记录 之前,对另外一个表中的记录进行更改。用oracle可以用before delete,但是SqlServer没有before。

 

请给一个具体的例子。多谢!

2楼
admin 发表于:2011/9/19 9:14:56

1)学会使用搜索,如:http://www.baidu.com/s?wd=sqlserver+%B4%A5%B7%A2%C6%F7+before&rsv_bp=0&rsv_spt=3&inputT=16000

 

2)通过改写delete操作,可以实现近似的效果

create table a(aa int primary key);
create table b(bb int references a(aa));
insert into a values(1);
insert into b values(1);
go

 

create trigger tri_delete_a on a
instead of delete
as
begin
 declare @abc int;
 select @abc = aa from deleted;
 delete b where bb = @abc;
 delete a where aa = @abc;
end

 

此时可以发现可以在删除a记录前更改其他表

 

3楼
hj 发表于:2011/9/19 13:24:32
谢谢
共3 条记录, 每页显示 10 条, 页签: [1]

Copyright ©2002 - 2016 课外天地.Net
Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.