请问这个需求如何解决.谢谢各位!

esunshine 2007-09-12 10:03:28
要创建触发器的表结构:
create table test (
aaa int,
bbb varchar(20),
ccc varchar(20),
ddd varchar(20),
eee varchar(20)
constraint test_PR_ PRIMARY KEY(aaa)
)

对上表进行字段触发,如何动态产生更新触发器

create trigger test_update
on test
for update
as
if update(aaa)
begin
select 主键旧值=D.aaa FROM deleted D
insert into A_TRIGER(表名,主键旧值,字段名) values('test',主键旧值,aaa)
end

else if update(bbb )
begin
select 主键旧值=D.aaa FROM deleted D
insert into A_TRIGER(表名,主键旧值,字段名) values('test',主键旧值,bbb)
end

else if update(ccc)
begin
select 主键旧值=D.aaa FROM deleted D
insert into A_TRIGER(表名,主键旧值,字段名) values('test',主键旧值,ccc)
end

else if update(ddd)
begin
select 主键旧值=D.aaa FROM deleted D
insert into A_TRIGER(表名,主键旧值,字段名) values('test',主键旧值,ddd)
end

else if update(eee)
begin
select 主键旧值=D.aaa as 主键旧值 FROM deleted D
insert into A_TRIGER(表名,主键旧值,字段名) values('test',主键旧值,eee)
end
end

请问这个动态的sql语句如何实现.谢谢各位了.谢谢.
...全文
170 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LexChen 2008-01-02
  • 打赏
  • 举报
回复
是Oracle么?

如果是更新的话,可以用

create trigger test_update
before update on test for each row

....

下面可以比较哪一列更新前后的值来判断是否要更新本列

esunshine 2007-09-13
  • 打赏
  • 举报
回复
大家帮忙给个建议!
esunshine 2007-09-13
  • 打赏
  • 举报
回复
高手都忙啊。郁闷中。。。。。。。。。。。。。。

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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