2010-10-27 41 views
1

哪個更好,有沒有什麼性能差異?將datetime列的默認值設置爲getdate()或將getdate()與insert t-sql腳本一起使用。列默認值還是包含在插入腳本中?

+0

爲什麼你要求在這種特殊情況下的表現? 理論上,如果你的client-concept允許直接使用insert-statements,那麼默認值不能從客戶端傳送到服務器。 – Ice 2010-10-31 19:16:45

回答

1

如果您絕對肯定必須有一個默認日期,無論應用程序或用戶輸入記錄,然後使用列默認值。即使有一段時間用戶應該更加關注這個日期,你可以在前端需要它。

我想,如果你打算花盡可能多的時間設計,測試和調試代碼,誰在SQL Server中寫道列默認值碼的開發者,是我的客人;)

1

這一切都取決於你'將使用該DateTime列。如果這是「插入日期」或「上次修改日期」列,請使用列默認值。

DateTime列是SQL編程人員和客戶端應用程序開發人員之間混淆/爭執/爭吵的源頭 - 如果您的應用程序支持多個區域設置,則尤其如此。就使用默認值而言,您不必擔心客戶端開發人員獲取日期格式是否正確(或者將用戶的語言環境轉換爲SQL Server默認語言環境)。作爲一般規則,當我指定一個列爲「NOT NULL」時,我將提供一個默認值,或者在文檔中寫出「期望的錯誤」。默認值可節省開發時間,讓您的生活更輕鬆。

並且不,沒有任何性能問題。

1

設置列的默認值。 DBA或開發人員總是有可能編寫一個繞過插入腳本的插入語句,並且即使在這種情況下也要確保設置值。