同志们,这个触发器怎么做?

Thinkinger 2002-06-29 10:23:06
我知道用UPDATE(columnname)来判断那个列在更新,可是如果我要判断哪个列“哪个行”在更新我要怎么做呢?
我的需求是:当一条记录的那个列更新的时候,我就认为我们操作了它,这样我就要把另外的一个表示时间的列的时间更新到现在的时间!
...全文
42 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
seaguard 2002-06-29
  • 打赏
  • 举报
回复
你所更新的row被copy到deleted表单中,只要通过where语句考察唯一标识列,就可以知道哪一行被改动。
firedragoninhell 2002-06-29
  • 打赏
  • 举报
回复
"当一条记录的那个列更新的时候"
首先定出该条记录是怎样定位的,比如是个id号。
那么从inserted.id判断是否是相同的id。
Thinkinger 2002-06-29
  • 打赏
  • 举报
回复
请问: seaguard(出海)
deleted.id的是一个列吗?
seaguard 2002-06-29
  • 打赏
  • 举报
回复

在UPDATE过程中,被改变的列写入了deleted表中
CREATE TRIGGER uptrig
ON t1
AFTER UPDATE AS

UPDATE t1
SET t1.curtime = getdate()
FROM deleted
WHERE t1.id= deleted.id
foolishchao 2002-06-29
  • 打赏
  • 举报
回复
CREATE TRIGGER TRTest1 ON dbo.TABLE1
FOR update
AS
set nocount on
if update(aa)
begin
update table1 set times=getdate() from inserted i join table1 t on i.pk_keys=t.pk_keys
end
go
saucer 2002-06-29
  • 打赏
  • 举报
回复
you can get the information from the table
inserted or deleted

34,590

社区成员

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

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