如何得到行update后的列值?????????????

kylinhj 2004-09-18 04:21:26
TABLE ONDUTY
字段: [ID]
[DATE1]
[EMPNO]
我为一个表写了一个触发器,CREATE TRIGGER trigger_into ON [dbo].[OnDuty]
FOR update
AS
if @@Rowcount>0
begin
--数据库操作
end

如何得到[onduty]表中修改了的列值,比如[DATE1]的值?

...全文
127 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiangqing 2004-09-20
  • 打赏
  • 举报
回复
select a.date1 as 修改前,b.date1 as 修改後 from deleted join inserted b on a.id=b.id
cansum396 2004-09-19
  • 打赏
  • 举报
回复
update首先是deleted
然后就是inserted
w18ily 2004-09-19
  • 打赏
  • 举报
回复
基本的操作只有inert和delete,嘻嘻,update就是由update和insert组成的~~
hglhyy 2004-09-19
  • 打赏
  • 举报
回复
在触发器中,对表的每一个delete或insert\update操作都会记录在deleted或inserted中

bernice99 2004-09-19
  • 打赏
  • 举报
回复
是的,触发器有两个逻辑表deleted和inserted,储存在内存中。
如果是修改记录,那么就首先将原来的信息放在deleted表里,再将修改后的记录放在inserted表里。
然后再通过一些约束条件,看是否符合插入操作条件,如果符合,便把inserted表的里记录插入数据表内。
select 修改前的=date1 from deleted
select 修改后的=date1 from inserted
kylinhj 2004-09-18
  • 打赏
  • 举报
回复
谢了..
zjcxc 元老 2004-09-18
  • 打赏
  • 举报
回复
select 修改前的=date1 from deleted
select 修改后的=date1 from inserted


deleted/inserted是两个特殊的逻辑表,仅在触发器中出现.

34,594

社区成员

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

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