2

我有一个表s_phone,在这个表中有列s_update

每次更新或插入此表时,我都想获取当前日期时间

getdate()systime()CURRENT_TIMESTAMP仅在插入时获取日期时间,而不是在更新时获取

4

3 回答 3

3

您可以使用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);
于 2013-03-11T06:38:55.877 回答
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)
于 2013-03-11T06:35:51.533 回答
0
getdate() or systime() or CURRENT_TIMESTAMP 

这些将为您提供当前的系统日期时间。如果您想在插入、更新事件中捕获日期时间,请使用触发器或您自己,您可以获取日期时间并插入所需的表中。

于 2013-03-11T06:42:32.270 回答