是一种自动公开数据库中生成的唯一的二进制数的数据类型。rowversion 和 timestamp 是数据类型同义词。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。下面的示例说明使用 timestamp 和 rowversion 关键字的查询。
SQL Server | SQL Server Compact 3.5 |
---|---|
时间戳查询
|
时间戳查询
|
行版本查询
|
行版本查询
|