SQL SERVER 触发器问题

haijeen 2010-11-09 10:02:55
目的:
当update 表1 中数据时,启动触发器,将那条update的数据中某个字段 insert到另外一个表。
问题:
我怎么知道当时update的是哪条数据?
触发器:
CREATE TRIGGER [check] ON [dbo].[bank_back]
for UPDATE
AS
declare @name char(50)
select @name=username from bank_back --这个地方怎么找到那条被update的数据
insert into fsk_ck(un) values(@name)
...全文
101 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
haijeen 2010-11-09
  • 打赏
  • 举报
回复
非常感谢楼上二位
昵称被占用了 2010-11-09
  • 打赏
  • 举报
回复
你要修改前的数据还是修改后的

修改前:
CREATE TRIGGER [check_b] ON [dbo].[bank_back]  
for UPDATE
AS
insert into fsk_ck(un)
select username from deleted

go

修改后:
CREATE TRIGGER [check_a] ON [dbo].[bank_back]  
for UPDATE
AS
insert into fsk_ck(un)
select username from inserted

go

chuifengde 2010-11-09
  • 打赏
  • 举报
回复
触发器中有两个虚拟表,update的时候虚拟表deleted里存的就是修改前的数据,inserted存的是修改后的数据

22,296

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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