我在SQL Server中有一个数据库表,我使用T-SQL的RowVersion
来记录GenerationNumber
并检测是否有任何记录已更改。这个范例已成功应用于我的应用程序,但现在我想添加一个不会增加RowVersion
上UPDATE
列的列。
有没有办法从RowVersion
增量中排除一列?或者我应该将RowVersion
的数据类型更改为datetime
并在触发器中自行处理?
欢迎任何建议或想法
答案 0 :(得分:1)
如果您目前有一个表T
- 将其重命名为T_Tracked
,并引入第二个表T_Untracked
,其中FK返回第一个表。
然后引入一个将这些表连接在一起的视图T
。您的申请继续引用T
。然后你把你的"触发器写入"在此视图上打开并写入适当的触发器,以确保在insert
期间填充这两个表,在delete
期间删除这两个表,并且在update
期间仅更新适用的表。 / p>
这样它似乎仍然是rowversion
列,但只会影响T_Untracked
的更新不会导致更改。