我有一个表s_phone
,在这个表中有列s_update
。
每次更新或插入此表时,我都想获取当前日期时间
getdate()
或systime()
或CURRENT_TIMESTAMP
仅在插入时获取日期时间,而不是在更新时获取
我有一个表s_phone
,在这个表中有列s_update
。
每次更新或插入此表时,我都想获取当前日期时间
getdate()
或systime()
或CURRENT_TIMESTAMP
仅在插入时获取日期时间,而不是在更新时获取
您可以使用TRIGGER 触发器将在表中发生插入/更新时自动运行。
例如:
create table tbl1
(
col1 int primary key,
col2 datetime
)
go
create trigger trg01
on tbl1
for insert, update
as
begin
update tbl1
set col2 = GETDATE()
where col1 in (select col1 from inserted)
end
go
insert into tbl1(col1) values (1);
您的问题令人困惑,首先您说: “..我每次更新或插入此表时都想获取当前日期时间..”在问题的最后一部分,您说:“..获取日期时间仅插入时不更新时..”
但是试试这个,为什么不在列上设置一个默认值,例如:
CREATE TABLE Hello
(
ID INT,
DATE DATETIME DEFAULT GETDATE()
)
INSERT INTO Hello (ID) VALUES (1)
INSERT INTO Hello (ID) VALUES (2)
INSERT INTO Hello (ID) VALUES (3)
INSERT INTO Hello (ID) VALUES (4)
getdate() or systime() or CURRENT_TIMESTAMP
这些将为您提供当前的系统日期时间。如果您想在插入、更新事件中捕获日期时间,请使用触发器或您自己,您可以获取日期时间并插入所需的表中。