从T-SQL RowVersion更新中排除列

时间:2017-09-19 11:46:36

标签: sql sql-server tsql

我在SQL Server中有一个数据库表,我使用T-SQL的RowVersion来记录GenerationNumber并检测是否有任何记录已更改。这个范例已成功应用于我的应用程序,但现在我想添加一个不会增加RowVersionUPDATE列的列。

有没有办法从RowVersion增量中排除一列?或者我应该将RowVersion的数据类型更改为datetime并在触发器中自行处理?

欢迎任何建议或想法

1 个答案:

答案 0 :(得分:1)

如果您目前有一个表T - 将其重命名为T_Tracked,并引入第二个表T_Untracked,其中FK返回第一个表。

然后引入一个将这些表连接在一起的视图T。您的申请继续引用T。然后你把你的"触发器写入"在此视图上打开并写入适当的触发器,以确保在insert期间填充这两个表,在delete期间删除这两个表,并且在update期间仅更新适用的表。 / p>

这样它似乎仍然是rowversion列,但只会影响T_Untracked的更新不会导致更改。