如何輕鬆捕獲記錄添加到數據庫的時間。我正在使用這個最佳和最簡便的捕捉時間的方式
create table YourTable
(
Created datetime default getdate()
)
還有其他的選擇嗎?
如何輕鬆捕獲記錄添加到數據庫的時間。我正在使用這個最佳和最簡便的捕捉時間的方式
create table YourTable
(
Created datetime default getdate()
)
還有其他的選擇嗎?
仍然使用默認約束......還有其他值可以考慮使用 - 每個值都有不同的優點(涉及通用時間,精度等)。
http://msdn.microsoft.com/en-us/library/ms188383.aspx
而且 - 考慮你的數據類型的大小 - 日期時間爲8個字節 - 你可以定義列SMALLDATETIME和完善,爲4個字節(或2008年,只是普通的舊日期,這是3字節 - 雖然你可能真的很喜歡知道時間)。
觸發器也是一種選擇,但並不是優選的IMO - 一方面,如果違反任何約束條件(例如與剛剛創建的表的外部關係,忘記觸發器 - oops !)
我認爲這是規範的方法,你有問題嗎?
其他方法將使用插入觸發器,這可能是較慢和稍微複雜的代碼是在兩個地方。或者你可以通過一個SP來引導所有的更新,這也會更新創建的字段 - 這又稍微複雜一些,並且很容易規避,除非你的權限被仔細設置。
選項:
選項#2是比較簡單的,因爲它總是與GETDATE更新()。使用選項#1允許用戶通過在INSERT子句中指定它來手動覆蓋創建的日期。
一定要將NOT NULL添加到列中。 – beach
考慮GETUTCDATE()而不是GETDATE()。 –
應用程序的體系結構是什麼?所有數據訪問是通過存儲過程還是視圖,還是應用程序直接查詢表? –