我使用Miscrosoft SQL Server 2012中和,因爲在這種article說:T-SQL 「時間戳」 覆蓋 「rowversion」 數據類型列
時間戳語法已被棄用。此功能將在 未來版本的Microsoft SQL Server中刪除。避免在 新開發工作中使用此功能,並計劃修改當前使用此功能的 應用程序。
我決定使用「rowversion」列代替「timestamp」列。所以,我創建瞭如下表:
CREATE TABLE [dbo].[TestTable]
(
[Col001] [INT] NOT NULL
,[Col002] [CHAR](2) NOT NULL
...
,[Col00N] [DATETIME2] NOT NULL
,[RowVersionID] [ROWVERSION] NOT NULL
,CONSTRAINT [PK_ProtoSurveyGlobalizationChanges_RowVersionID] PRIMARY KEY CLUSTERED
(
[RowVersionID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
,一切都看沒事,直到我按下「ALT + F1」的組合,讓我的信息我的表(樣柱的細節),我已經看到, 「RowVersionID」列標有類型「timestamp」。
下一個認爲我所做的一切,是「刪除並創建我的表」使用SQL Server Management Studio的2012和「生成SQL」改變了我這樣的原始查詢:
[RowVersionID] [timestamp] NOT NULL
爲什麼服務器沒有使用最初設置的類型,爲什麼在文章中我建議不要使用「時間戳」,但服務器在某種程度上選擇它?
rowversion是一個時間戳。它已重新命名,因爲時間戳不符合ISO標準。把它作爲排隊並停止擔心它。 – 2013-02-21 08:26:03
那麼,如果我指定「rowversion」或「timestamp」,那麼最終沒有區別?服務器正在爲我使用正確的嗎? – gotqn 2013-02-21 08:27:13
只有一個符合。 timnestamp已被棄用,並可能在稍後的日期被刪除。 – 2013-02-21 08:27:53