update user set upd_time=Current_TimeStamp,Set ID = Current_User from inserted where inserted.id = user.idinserted 是由SQL Server自己管理的驻留内存表,它包括受影响的表的全部新行。
create ti_user on [user] for insert as update [user] set upd_time = getdate() where ...create tu_user on [user] for update as update [user] set upd_time = getdate() where ...
create trigger ti_user on [user] for insert as update [user] set upd_time = getdate() where ...create trigger tu_user on [user] for update as update [user] set upd_time = getdate() where ...不好意思,刚才漏写了trigger
create trigger trig_tblBank on tblBank For Update as Update tblBank Set stamp=getdate() From tblBank a, Inserted b Where a.BankCode=b.BankCode你看這改一下就好了。
谢谢各位。特别是lixlin(lsnowl)和 pengdali(大力) ,让大家知道了inserted 的一些相关的知识。 我做了个触发器: declare @updid intselect @updid=user_id from insertedupdate test_user set user_updtime=getdate() where user_id=@updid可以实现我的要求,但总觉得有点漏洞。另外;那个upd_time列设默认值为:CURRENT_TIMESTAMP,我试了,我把upd_time设为不可为空,默认值为:CURRENT_TIMESTAMP,但只能得到一次时间,即刚新添时,得到时间,以后修改时间不变。
to:楼主 你肯定要有条件嘛?没条件表中所有的记录都会更改,如果有条件不就可以根据条件得到修改的id?
CURRENT_TIMESTAMP 当前日期和时间。
CURRENT_USER 执行插入操作的用户名。
SESSION_USER 执行插入操作的用户名。
SYSTEM_USER 执行插入操作的用户名。
USER 执行插入操作的用户名。
update [user]
set upd_time = getdate() where ...create tu_user on [user] for update as
update [user]
set upd_time = getdate() where ...
update [user]
set upd_time = getdate() where ...create trigger tu_user on [user] for update as
update [user]
set upd_time = getdate() where ...不好意思,刚才漏写了trigger
as
Update tblBank Set stamp=getdate() From tblBank a, Inserted b
Where a.BankCode=b.BankCode你看這改一下就好了。
我做了个触发器:
declare @updid intselect @updid=user_id from insertedupdate test_user set user_updtime=getdate() where user_id=@updid可以实现我的要求,但总觉得有点漏洞。另外;那个upd_time列设默认值为:CURRENT_TIMESTAMP,我试了,我把upd_time设为不可为空,默认值为:CURRENT_TIMESTAMP,但只能得到一次时间,即刚新添时,得到时间,以后修改时间不变。