2011-11-02 62 views
15

我想在用戶決定停用或激活用戶ID時插入日期。我試圖用一個SP來觸發這一點,但是顯然這比我想象的要難。使用T-SQL將當前日期插入日期列?

我可以做一個

SELECT GETDATE() 

得到的日期,但有沒有從GETDATE插入信息,並把它變成一個專欄中,我想辦法?

回答

16

幾種方法。首先,如果每次發生[de]激活時添加一行,則可以將列的缺省值設置爲GETDATE(),而不是在插入中設置值。否則,

UPDATE TableName SET [ColumnName] = GETDATE() WHERE UserId = @userId 
+0

是啊,我可以留空。我會嘗試的。 – nhat

8

要插入新行插入一個給定的表(tblTable):

INSERT INTO tblTable (DateColumn) VALUES (GETDATE()) 

要更新現有行:

UPDATE tblTable SET DateColumn = GETDATE() 
WHERE ID = RequiredUpdateID 

注意,當INSERT荷蘭國際集團新行,你需要觀察在桌上的任何約束 - 最有可能的約束 - 所以你可能需要提供其他列的值例如...

INSERT INTO tblTable (Name, Type, DateColumn) VALUES ('John', 7, GETDATE()) 
4

如果您希望將信息存儲在表中,則需要使用INSERT或UPDATE語句。這聽起來像你需要一個UPDATE語句:

UPDATE SomeTable 
SET  SomeDateField = GETDATE() 
WHERE SomeID = @SomeID 
3

你可以在默認情況下,因爲這SO question's accepted answer shows使用GETDATE()。這樣您不提供日期,只需插入其餘部分,該日期就是該列的默認值。

您也可以在插入的值列表中提供它,並根據需要手動執行。

5
UPDATE Table 
SET DateColumn=GETDATE() 
WHERE [email protected] 

如果要插入到表中,並且將始終需要把當前的日期,我會建議設置GETDATE()作爲該列的默認值,而不允許NULL