TimeStamp
在所有行中都是唯一的吗?
它有独特的索引吗?
答案 0 :(得分:4)
来自MSDN article,强调我的:
时间戳是一种公开自动生成的数据类型,唯一 数据库中的二进制数。时间戳通常用作a 用于对表行进行版本标记的机制。存储空间大小为8 字节。 时间戳数据类型只是一个递增的数字而且确实如此 不保留日期或时间。要记录日期或时间,请使用 日期时间数据类型。
它也提供了这个有趣的说明:
使用SELECT INTO可以生成重复的时间戳值 时间戳列在SELECT列表中的语句。我们不 建议以这种方式使用时间戳。
在SQL Server 2008及更高版本中,timestamp
类型已重命名为rowversion
,可能是为了更好地反映其目的和价值。
答案 1 :(得分:3)
timestamp是一种数据类型,它公开自动生成的二进制数,这些数字保证在数据库中是唯一的。 timestamp通常用作对表行进行版本标记的机制。存储大小为8个字节。
有关详细信息,请查看THIS文章。
答案 2 :(得分:0)
文档说
数据库中的唯一二进制数
但实际上,你可以遇到这种说法不正确的情况。由于该值是从database global counter
生成的,因此在恢复数据库和/或timestamp
中的表格中使用tempdb
时可能会遇到问题。
您可以看到下一个值:
Select @@DBTS
在SQL Server 2000之前,有一个未记录的命令来更改值
DBCC CHECKDBTS (dbId, newTimestamp)
要更改SQL服务器的非古代verswions中的时间戳,请参阅以下答案: