timestamp(rowversion)字段说明
timestamp 在 SQL Server 中实际是 rowversion 的同义词,它是一种自动生成的、唯一的二进制数字,通常用于标识数据行的版本。
建表示例
CREATE TABLE [dbo].[Table_3](
[id] [int] IDENTITY(1,1) NOT NULL,
[rowversion] [timestamp] NOT NULL,
[name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Table_3] 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]
GOCode language: PHP (php)
timestamp / rowversion 字段不需要手动定义值,由数据库自动生成,每次插入或更新行时都会自动递增更新。
查询数据
SELECT [id]
,[rowversion]
,[name]
FROM [Test].[dbo].[Table_3]
GOCode language: CSS (css)
插入数据
插入时不需要(也不能)手动指定 timestamp 字段的值:
INSERT INTO [Test].[dbo].[Table_3]
([name])
VALUES
('测试名称')
GOCode language: JavaScript (javascript)
注意:
timestamp与日期时间无关,它不存储时间信息,仅用于版本标记。从 SQL Server 2008 开始,微软建议使用rowversion关键字替代timestamp,因为timestamp可能在未来版本中被废弃。
Previous: 临时表的创建、使用与复杂查询拆分
Next: 使用临时表进行数据迁移与查询优化