首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请教这个需求怎么解决.多谢各位

2012-03-16 
请问这个需求如何解决.谢谢各位!要创建触发器的表结构:createtabletest(aaaint,bbbvarchar(20),cccvarchar

请问这个需求如何解决.谢谢各位!
要创建触发器的表结构:
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语句如何实现.谢谢各位了.谢谢.

[解决办法]
是Oracle么?

如果是更新的话,可以用

create trigger test_update 
before update on test for each row

....

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

热点排行