我们有 SQL Server 2017,我们想在现有数据库中创建一个新字段
- 字段数据类型为 RowVersion
- 但使用 SQL Management Studio 我无法定义具有 RowVersion 数据类型的字段
- 我们可以使用时间戳
- 但据我所知,现在不推荐使用 TimeStamp 以支持 RowVersion
对此有何建议?
这是不包含 rowversion 的 DataType 列表:
编辑
现在我编写了以下脚本来创建一个具有 rowversion 列类型的新表:-
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[test2](
[id] [int] NOT NULL,
[rowversion] [rowversion] NOT NULL,
CONSTRAINT [PK_test2] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
但是当我在 SQL 管理工作室 GUI 中打开表时 >> 新表中新列的类型将是时间戳而不是 rowversion + 如果我为新表生成创建脚本,我将得到:-
USE [test]
GO
/****** Object: Table [dbo].[test2] Script Date: 26/08/2021 19:02:56 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[test2](
[id] [int] NOT NULL,
[rowversion] [timestamp] NOT NULL,
CONSTRAINT [PK_test2] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
所以似乎rowversion可以用来创建表,但它会被转换为时间戳......问题是微软说时间戳已被弃用,我们应该使用rowversion来代替......完全令人困惑!