SQL触发器 修改一个记录的某个值 修改这条记录的LASTTIME为现在时间

修改一个记录的某个字段值以后修改这条记录的LASTTIME的值为现在时间CREATETRIGGER[tig_update]ON表名FORUPDATEASbeginUPDA... 修改一个记录的某个字段值以后
修改这条记录的LASTTIME的值 为现在时间
CREATE TRIGGER [tig_update] ON 表名
FOR UPDATE
AS
begin
UPDATE 表名 SET lasttime = GETDATE()
end
我现在是这样写的 有什么不对 怎么定义到这条记录啊
展开
 我来答
wangzhiqing999
2011-08-01 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3374万
展开全部
UPDATE 表名 SET lasttime = GETDATE()
WHERE 表名.主键 IN ( SELECT 主键 FROM inserted )

参考资料: http://hi.baidu.com/wangzhiqing999/blog/item/6a325cbb7601cf1f18d81f60.html

shutao917
2011-08-01 · TA获得超过1213个赞
知道大有可为答主
回答量:2199
采纳率:0%
帮助的人:3143万
展开全部
UPDATE 表名 SET lasttime = GETDATE() where id in(select id from inserted)
触发器里可以用到 inserted,deleted这两张特殊的表
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
己闻楣Sx
2011-08-01 · TA获得超过1936个赞
知道大有可为答主
回答量:1057
采纳率:93%
帮助的人:916万
展开全部
1、定位需要修改的记录,有两种办法,一是通过游标逐行遍历,而是通过虚拟表inserted进行数据集操作,你的问题比较简单,后者即可,书写也简单。
2、关键问题:需要判断是否修改了你说的“某个值”,通过if update of(字段)来过滤,只有当你想“修改任何字段,都要更新时间”时,才不用过滤。

IF UPDATE OF(某字段) -- 看你的意图,是否加上这一行
UPDATE 表名
SET t.lasttime = GETDATE()
FROM 表名 t, inserted i
WHERE t.主键字段 = i.主键字段
AND t.主键字段2 = i.主键字段2
最后一行是当你的表的主键不是1个字段构成,而是2个字段复合而成时用,如果字段更多,仿照这个写法继续罗列,若的确之后1个字段,则不需要这些。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鬼谷刘志单
2011-08-02 · 超过21用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:54.8万
展开全部
少一个行级关键字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式