怎样做被更新行的触发器

morningnet 2005-08-30 01:17:29
create trigger let_kc on 表2

after update
as
update kczb set bid=kcid+zyh+nj+cc
go
表2中的kcid是另一个表1的主健,当表1中的kcid值改变时,kczb中的kcid值将跟着改变,因为表2有约束
bid=kcid+zyh+nj+cc ,所以需要做上面的触发器,但是那样做更新的是时整个表,能不能在后面加条件,使得只有更新了的行执行更新语句.
update kczb set bid=kcid+zyh+nj+cc where 行值改变=true

关键问题:怎么获知一行是否被更新?
...全文
222 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
morningnet 2005-09-07
  • 打赏
  • 举报
回复
哦,明白,接分。
morningnet 2005-09-07
  • 打赏
  • 举报
回复
郁闷,即使是只有一行改变,触发器还是更新整个表的所有记录。
where 主键 in(select 主键 from deleted)
to vivianfdlpw:不知道你这个deleted是什么东西??
vivianfdlpw 2005-08-30
  • 打赏
  • 举报
回复
create trigger let_kc
on 表2
after update
as
if update(kcid)
update kczb
set bid=kcid+zyh+nj+cc
where 主键 in(select 主键 from deleted)
go
MorningTea 2005-08-30
  • 打赏
  • 举报
回复
create trigger let_kc on 表2

after update
as
if update(kcid)
update kczb set bid=kcid+zyh+nj+cc
go
iwl 2005-08-30
  • 打赏
  • 举报
回复
在虚拟表DELETED里面

34,590

社区成员

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

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