2013-03-11 31 views
1

我有一个表s_phone在这个表中有s_update列。我想获取当前的日期时间,我每次更新或在SQL Server中插入一行

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

getdate()systime()CURRENT_TIMESTAMP获取日期的时候插入不仅没有在更新

+4

尝试使用触发器。 – 2013-03-11 06:31:51

+0

您还没有提出任何问题,并且您的主题和内容不同意。主题说“每次我更新或插入”,但文字说“只在更新时插入”。请[编辑你的问题](http://stackoverflow.com/posts/15332472/edit)实际*提出一个问题*,并且当你这样做时,请决定你想要做哪一个。 – 2013-03-11 06:36:54

+0

第一个抱歉的误解,但这部分我的问题 - getdate()或systime()或CURRENT_TIMESTAMP - 我只是想说,我用这个功能,它不工作再次感谢 – SHADLOVO 2013-03-11 07:04:01

回答

1

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

你的问题是混乱的,第一你说,“..我想获得当前日期时间每当我更新或插入到此表..”和您的问题的最后部分,你说,“..获取日期时间当只插入不当的时候PDATE。”

但是试试这个,为什么不设置列的默认值,例如:

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) 
+0

感谢您的答案,但什么我的意思是我的问题的最后一部分是,我试过这个3字 - getdate()或systime()或CURRENT_TIMESTAMP - 并没有工作 – SHADLOVO 2013-03-11 06:41:42

0
getdate() or systime() or CURRENT_TIMESTAMP 

这些会给你当前系统日期时间。如果你想插入,更新事件 捕获日期时间使用触发器或自己,你可以得到日期时间并插入到所需的表。

相关问题