2013-03-11 25 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 

這些會給你當前系統日期時間。如果你想插入,更新事件 捕獲日期時間使用觸發器或自己,你可以得到日期時間並插入到所需的表。

相關問題