我想在SQL Server数据库中的某些表上应用数据并发。为了实现行版本控制,我想添加名为integer
的{{1}}列,并在更新行时增加列的行值。
还有另一种选择:使用RowVersion
列。使用timestamp
列时,SQL Server会在更新行时自动创建唯一值。
我想知道这些选项的优点。我认为插入timestamp
列来存储行版本是更通用的方式,而插入int
列是特定于SQL Server的。
此外,行版本的timestamp
值比integer
列更具人性化。
我想知道为行版本字段选择timestamp
列的其他优缺点。
感谢。
答案 0 :(得分:5)
如果让SQL服务器为您执行此操作,则可以免费保证原子性。 (同一个表上的并发更新可以保证产生不同的行版本。)如果您推出自己的行版本控制方案,那么您将不得不采取一切措施来保证自己的原子性。