我想在每次更新或在SQL Server中插入行时获取当前日期时间

时间:2013-03-11 06:30:16

标签: sql sql-server

我在此表中有一个表s_phone,其中有s_update列。

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

getdate()systime()CURRENT_TIMESTAMP获取仅在更新时插入的日期时间

3 个答案:

答案 0 :(得分:2)

您可以使用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);

答案 1 :(得分: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)

答案 2 :(得分:0)

getdate() or systime() or CURRENT_TIMESTAMP 

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