我有一个名为Entity
的实体表,如下所示:
Entity
---------------------------
id (uniqueidentifier)
name (varchar(32))
description (varchar(max))
我想添加一个record book
或log
表来存储名为EntityLog
的Entity的所有版本
EntityLog
-------------------------
version ???
entityId (uniqueidentifier) fk Entity
name (varchar(32))
description (varchar(max))
EntityLog
的version列只是一个草图,可以使用它,因为它尚不存在。
我如何基于外键EntityId
自动分配版本,以便插入文件自动按EntityId
从每个表将版本从1更新为2,依此类推?
为避免竞争情况,上下文包括多线程应用程序
编辑
尝试解决它:
select max(version) from entityLog where entityId = myId
EntityLog
,如果为空则插入1。在1和2之间可能存在竞争条件,因此我希望将这样的线程安全插入方式委派给SQL Server