错了 用触发器 create trigger tr_tablename on tablename for update,insert as update tablename set time=getdate() from tablename,inserted i where tablename.pk=i.pk go
-- 可以用触发器+默认值 -- 默认值负责新增记录的时间记录, 触发器负责更新记录的时间记录-- 下面是示例CREATE TABLE tb(id int PRIMARY KEY, InDate datetime DEFAULT GETDATE()) GOCREATE TRIGGER TR_TEST ON tb FOR UPDATE AS UPDATE tb SET InDate = DEFAULT WHERE id IN( SELECT id FROM inserted) GOINSERT tb(id) SELECT 1 UNION ALL SELECT 2 SELECT * FROM tbUPDATE tb SET id = 3 WHERE id = 1 SELECT * FROM tb GODROP TABLE tb
触发器中UPDATE tb SET InDate = DEFAULT -- 这里使用DEFAULT关键字, 可以让修改与新增记录使用同一规则表现记录时间
用默认
default(getdate())
就可以
用触发器
create trigger tr_tablename
on tablename
for update,insert
as
update tablename
set time=getdate()
from tablename,inserted i
where tablename.pk=i.pk
go
用默认
default(getdate())
就可以
---------------
请问update的时候,这个字段会跟着变化?
-- 默认值负责新增记录的时间记录, 触发器负责更新记录的时间记录-- 下面是示例CREATE TABLE tb(id int PRIMARY KEY, InDate datetime DEFAULT GETDATE())
GOCREATE TRIGGER TR_TEST ON tb
FOR UPDATE
AS
UPDATE tb SET InDate = DEFAULT
WHERE id IN(
SELECT id FROM inserted)
GOINSERT tb(id)
SELECT 1 UNION ALL SELECT 2
SELECT * FROM tbUPDATE tb SET id = 3 WHERE id = 1
SELECT * FROM tb
GODROP TABLE tb