Microsoft SQL Server Management Studio显示RowVersion是无效类型。

3

在通过Microsoft SQL Server Management Studio创建表时,是否有一种方法可以将字段指定为RowVersion而不是Timestamp?

当我尝试使用rowversion作为字段类型时,我得到了以下结果:

enter image description here

我使用的是Windows 7 64位操作系统,SQL Server 2014 Express数据库以及Microsoft SQL Server Management Studio 17.1管理工具。

你尝试过时间戳吗? - MalvEarp
@MalvEarp 是的,我可以使用时间戳。我只是不知道rowversion是时间戳的typealias... https://dba.stackexchange.com/questions/86523/microsoft-recommends-using-rowversion-over-timestamp-but-i-can-not-find-rowve - Whirlwind
1个回答

10

没有足够的声望来发表评论。这个问题之前已经被问过了,下面是链接。

如果您正在使用GUI,则使用时间戳,这就是rowversion在幕后存储的方式。

CREATE TABLE dbo.x(y ROWVERSION);

即使上面的DDL在背后被存储为Timestamp,你可以使用以下方法进行验证。

SELECT t.name 
  FROM sys.types AS t
  INNER JOIN sys.columns AS c
    ON c.system_type_id = t.system_type_id
  INNER JOIN sys.tables AS st
    ON c.[object_id] = st.[object_id]
  INNER JOIN sys.schemas AS s
    ON st.[schema_id] = s.[schema_id]
  WHERE st.name = N'x'
    AND s.name = N'dbo'
    AND c.name = N'y';

References:
https://dba.stackexchange.com/questions/86523/microsoft-recommends-using-rowversion-over-timestamp-but-i-can-not-find-rowve


好的,谢谢...我想我应该使用时间戳。 - Whirlwind
1
@Whirlwind,是的,直到微软解决SSMS表设计器UI的问题。这就是我更喜欢DDL脚本的原因之一。 - Dan Guzman
2021年4月和SSMS V18.7.1仍不支持RowVersion,只支持TimeStamp。 - Greg Gum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接