SQL Server中行版本控制的Timestamp与Int列

时间:2011-12-30 07:34:47

标签: sql sql-server concurrency rowversion

我想在SQL Server数据库中的某些表上应用数据并发。为了实现行版本控制,我想添加名为integer的{​​{1}}列,并在更新行时增加列的行值。

还有另一种选择:使用RowVersion列。使用timestamp列时,SQL Server会在更新行时自动创建唯一值。

我想知道这些选项的优点。我认为插入timestamp列来存储行版本是更通用的方式,而插入int列是特定于SQL Server的。

此外,行版本的timestamp值比integer列更具人性化。

我想知道为行版本字段选择timestamp列的其他优缺点。

感谢。

1 个答案:

答案 0 :(得分:5)

如果让SQL服务器为您执行此操作,则可以免费保证原子性。 (同一个表上的并发更新可以保证产生不同的行版本。)如果您推出自己的行版本控制方案,那么您将不得不采取一切措施来保证自己的原子性。