got*_*tqn 7 t-sql timestamp rowversion sql-server-2012
我正在使用Miscrosoft SQL Server 2012,因为在这篇文章中说:
不推荐使用时间戳语法.将在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]
Run Code Online (Sandbox Code Playgroud)
一切都很好看,直到我按下"ALT + F1"组合,给我关于我的表的信息(比如列详情),我看到"RowVersionID"列标有"timestamp"类型.
接下来认为我已经完成了,使用SQL Server Management Studio 2012"删除并创建我的表","生成的SQL"更改了我的原始查询,如下所示:
[RowVersionID] [timestamp] NOT NULL
Run Code Online (Sandbox Code Playgroud)
为什么服务器没有使用我最初设置的类型,为什么在文章中我建议不要使用"timestamp",但不知何故服务器正在选择它?
Dam*_*ver 10
它们是同义词,服务器无法告诉(一旦创建表格)您实际用于创建表格的单词.
显然,在深度深处的某个地方,timestamp被弃用的新闻还没有达到负责编写SQL Server脚本组件的人 - 所以脚本仍然说timestamp.
| 归档时间: |
|
| 查看次数: |
3105 次 |
| 最近记录: |