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

请问一个触发器有关问题

2012-04-09 
请教一个触发器问题table1表中有两列date1和date2,分别表示合同交货期和内部交货期,想实现仅在新插入数据

请教一个触发器问题
table1表中有两列date1和date2,分别表示合同交货期和内部交货期,想实现仅在新插入数据时date2=date1,其他条件下不触发,语句如下:
create Trigger trigg-name
On table1  
for insert  
As  
begin
if exists(select 1 from inserted) and not exists(select 1 from deleted)
Update a 
Set a.date2 =b.date1 
From table1 a,inserted b
Where a.finterid=b.finterid 
end

执行的结果是:不管是insert还是update,触发器均被触发,请问怎么修改?

[解决办法]

SQL code
create Trigger trigg-nameOn table1  for insert  As  if exists(select 1 from inserted) and not exists(select 1 from deleted)beginUpdate a Set a.date2 =b.date1 From table1 a,inserted bWhere a.finterid=b.finterid end--你的begin end位置放得有问题。应该是先判断什么操作,然执行对应的操作
[解决办法]
SQL code
create Trigger trigg-nameOn table1   for insert   As   beginUpdate a  Set a.date2 =b.date1  From table1 a,inserted bWhere a.finterid=b.finterid  end 

热点排行