我使用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