时间戳 (SQL Server Compact)

是一种自动公开数据库中生成的唯一的二进制数的数据类型。rowversiontimestamp 是数据类型同义词。rowversion 通常用于对表行进行版本戳记的机制。存储大小为 8 个字节。rowversion 数据类型是一个增加的数字,并且不保留日期或时间。若要记录日期或时间,请使用 datetime 数据类型。

备注

rowversion 数据类型的特点如下所示:

  • 一个表只能有一个 rowversion 列。
  • 每当插入或更新包含 rowversion 列的行时,都将更新 rowversion 列中的值。这使得 rowversion 列不能很好地适合键,尤其是主键。
  • rowversion 是只读的列,不能进行更新。
  • rowversion 在数据库中是唯一的。
  • 若要为数据库返回当前 rowversion 值,请使用命令 @@DBTS。

重要

当回滚事务或某些验证失败时,不能将 rowversion 计数器重置为旧值。此操作已被禁止,原因是如果同时发生其他事务,重置计数器会导致发生问题。若要查找 rowversion 的当前值,您可以使用 @@DBTS 查询它。在从 SQL Server 到 SQL Server Compact 3.5 的复制过程(或反向复制过程)中,timestamp 列不会从一个数据库复制到另一个数据库。这有助于确保 timestamp 的唯一性。复制的值会与某些数据行的现有值或将来值发生冲突。

示例

如果使用的是 timestamp 数据类型,则在为 SQL Server 和 SQL Server Compact 3.5 编写的查询语句中存在差异。在 SQL Server 中,如果您使用 timestamp 数据类型,则列名称是可选的。但是,在 SQL Server Compact 3.5 中,列名称是必需的。

如果使用的是 rowversion 数据类型,则应始终指定列名称,而无论您使用的是 SQL Server 还是 SQL Server Compact 3.5。下面的示例说明使用 timestamprowversion 关键字的查询。

SQL Server SQL Server Compact 3.5

时间戳查询

CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, timestamp);

时间戳查询

CREATE TABLE ExampleTable (PriKey int PRIMARY KEY, c3 timestamp);

行版本查询

Create table t1 (c1 int PRIMARY KEY, c2 nvarchar(50), c3 rowversion);

行版本查询

Create table t1 (c1 int PRIMARY KEY, c2 nvarchar(50), c3 rowversion);

另请参见

参考

@@DBTS (SQL Server Compact)

帮助和信息

获取帮助 (SQL Server Compact 3.5 Service Pack 1)