2011-11-07 195 views
23

我有一個SQL Server 2008數據庫。這個數據庫有一個名爲「書」的表。 「書」 具有以下屬性:在SQL Server 2008中創建計算列

  • ID(INT)
  • 標題(nvarchar的(256))
  • PublishDate(日期時間)

我需要創建一個名爲計算列「 AgeInMinutes」。我對計算列不是很熟悉。我理解這個概念,但我不知道該怎麼做。在SQL Server Management Studio的「列屬性」區域中,我在表設計器部分看到一個名爲「(公式)」的屬性。我想我需要在這裏輸入我的計算。但是,我不知道要放在這裏。有人能幫幫我嗎?

謝謝!

+0

你打算如何使用這個計算列?不要在'WHERE'子句中使用它,因爲您最終會進行全面掃描。 –

回答

38

您可以在CREATE TABLE作爲定義列:

AgeInMinutes as (DATEDIFF(minute, PublishDate, GETDATE())

或者,只是通過SSMS做

ALTER TABLE Book 
ADD AgeInMinutes as (DATEDIFF(minute, PublishDate, GETDATE()) 
+4

我認爲值得特別注意的是,在CREATE TABLE定義中,您不指定數據類型。我首先忽略了這一點。 – hurleystylee

0

修改計算列。右鍵單擊表格,然後選擇設計,然後單擊計算列,然後在列屬性 中看到有一個選項。計算列的規格,你可以改變 COMPUTED COLUMN。