You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么SSMS中无RowVersion数据类型且创建后显示为timestamp?

核心原理说明

在SQL Server中,rowversion和timestamp本质是完全相同的数据类型,rowversion只是timestamp的别名。微软将timestamp标记为弃用,只是名称层面的规范更新,二者的底层存储、功能逻辑没有任何区别。

你遇到的SSMS显示异常是SQL Server Management Studio的工具层面问题:SSMS的GUI展示、自动生成脚本的逻辑还没有同步更新别名规则,所以无论你用哪个关键字创建列,它都会统一显示为timestamp,这属于展示层面的偏差,不影响实际功能,也不违反官方的规范要求。

实操建议

  • 所有手写SQL脚本统一使用rowversion关键字即可,不管是新建表还是给现有表加字段,都符合微软的官方推荐规范,后续就算SQL Server真的移除timestamp关键字,你的脚本也能正常兼容。
    给现有表新增rowversion字段的参考语句:
    ALTER TABLE [dbo].[你的表名] ADD [你的列名] rowversion NOT NULL
    
  • 不用纠结SSMS GUI里的类型显示、以及自动生成脚本里的timestamp字样,如果你需要导出符合规范的SQL脚本,手动把生成脚本里的timestamp替换成rowversion即可,执行效果完全一致。
  • 不要为了匹配SSMS的显示专门用timestamp关键字写脚本,避免后续SQL Server版本移除该关键字后出现兼容性问题。

内容的提问来源于stack exchange,提问作者John John

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 06:51:01