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,触发器均被触发,请问怎么修改?
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 server 2008硬盘空间问题
- 取最大的一条
- SQL Server怎么入门,建完数据表后在哪里写SQL语句?
- 火烧眉毛啦!datetime字段存的是格林尼治时间,我怎么办啊
- 哪位老大能搞定这个将EXCEL的数据导入SQL SERVER时的报错问题?十万火急!
- 求教:关于sql server 2000 频繁备份后,备份出来的文件不能恢复的问题.
- SQL多实例连接问题?
- vb 中ADO控件删除记录的一个问题,求教!!
- 差不多搞了一个下午了加晚上了,SQL2008 升级SQL2008R2总是提示跨语言失败
create Trigger trigg-name
On table1
for insert
As
if exists(select 1 from inserted) and not exists(select 1 from deleted)
begin
Update a
Set a.date2 =b.date1
From table1 a,inserted b
Where a.finterid=b.finterid
end
--你的begin end位置放得有问题。应该是先判断什么操作,然执行对应的操作
create Trigger trigg-name
On table1
for insert
As
begin
Update a
Set a.date2 =b.date1
From table1 a,inserted b
Where a.finterid=b.finterid
end
ON A
FOR insert
As
begin INSERT B
(
修改人
)
SELECT 'aaa'
END
这个触发器只有insert时插入,更新不插入,跟楼主的语句差不多啊!
按照2楼的语句测试结果:在insert 和update下均被触发。