仅返回行之间更改的列

时间:2014-05-05 10:33:58

标签: sql sql-server cursor

我有一个普通的表结构。喜欢下面的那个

TableName_OID|GlobalKeyColumn(or foreign key)|Column2| ... |ColumnN|CreateBy|CreateDate|ModifyBy|ModifyDate|IsActive|IsUpdated|UpdateOfTableName_OID

我写了一个更新前触发器,它将占用最后一行(带有inserted.TableName_OID)并插入到表中,其[IsUpdated] = 1和[UpdateOfTableName_OID] = TableName_OID(或我可以插入只会更改列值的行,但我不知道如何)。

为了显示表格的整个历史记录[GlobalKeyColumn]我有一些想法。如果我使用第一个选项(插入一整行),我将必须在结果集上运行一个游标(对于某个GlobalKeyColumn),将每行与前一个行进行比较并仅显示已更改的列。

我需要帮助的两个选项是如何将一行的每一列与之前的一行进行比较。我的意思是,我可以手动完成,但SQL Server中是否有任何通用的东西可以将一行中的所有列与之前的列进行比较?

0 个答案:

没有答案