Microsoft SQL Server Management Studio 说 RowVersion 是无效类型

Posted

技术标签:

【中文标题】Microsoft SQL Server Management Studio 说 RowVersion 是无效类型【英文标题】:Microsoft SQL Server Management Studio says that RowVersion is invalid type 【发布时间】:2017-07-07 15:39:56 【问题描述】:

在通过 Microsoft SQL Server Management Studio 创建表时,有没有办法将字段指定为RowVersion 而不是时间戳

这是我尝试使用 rowversion 作为字段类型时得到的结果:

我使用的是 64 位 Windows 7、SQL Server 2014 Express 和 Microsoft SQL Server Management Studio 17.1

【问题讨论】:

你试过时间戳吗? @MalvEarp 是的,我可以使用时间戳。我只是不知道 rowversion 是时间戳的别名...dba.stackexchange.com/questions/86523/… 【参考方案1】:

没有足够的声望来发表评论。以前有人问过这个问题。下面是链接

如果您使用的是 GUI,则使用 TimeStamp' which is howrowversion` 存储在引擎盖下

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';

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

【讨论】:

好的,谢谢...我想我应该使用时间戳。 @Whirlwind,是的,直到微软开始修复 SSMS 表设计器 UI。我更喜欢 DDL 脚本的原因之一。 2021 年 4 月和 SSMS V18.7.1 仍然不支持 RowVersion,仅支持 TimeStamp

以上是关于Microsoft SQL Server Management Studio 说 RowVersion 是无效类型的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft SQL Server Management Studio 已超过了锁请求超时时段。 (Microsoft SQL Server,错误: 1222)

java.sql.SQLException [Microsoft] [ODBC SQL Server Driver] [SQL Server] 对象名“表名”无效

Microsoft SQL Server Version List(SQL Server 版本)

Microsoft SQL Server 2017 Express and Management Studio Express

Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server不存在或访问被拒绝

Microsoft SQL Server,错误: 3702