for update 触发器的写法:关于更新前和更新后的字段比较

lkenshin 2007-03-05 09:59:33
表A中的有一个字符串字段result,例如:0000。
在写for update触发器时,如何比较更新前和更新后的该字段中的某一位。

CREATE trigger insert_task on A
for update
as

if update(result)
begin
declare @rst nvarchar(1)
select @rst=left(result, 1) from inserted

if(@rst='1')
begin
insert into B from inserted
end
end

我写的这个触发器毛病在于,left(result,1)这一位如果更新前和更新后,没有变化,而其他位数变化了,也会往B表插入数据,我的要求是只判断left(result,1)这一位是否变化了,才做操作。


...全文
370 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangdehao 2007-03-05
  • 打赏
  • 举报
回复
CREATE trigger insert_task on A
for update
as

if update(result)
begin

insert into B select a.* from inserted a,deleted b where a.主键=b.主键 and left(a.result, 1)<>left(b.result, 1)

end

34,587

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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