【发布时间】:2018-11-29 21:05:24
【问题描述】:
我有一个定义数据表,我正在使用 On UPDATE 触发器跟踪更改。目前,我通过一系列 IF UPDATE([COLUMNNAME]) 检查跟踪更改。但是,这有一个问题,如果将来添加/删除/重命名列,触发器将失败。
我的想法是旋转 DELETED 和 INSERTED 表,将它们从带有标题的单行转换为两列,一列包含行标题,另一列包含行数据。然后将它们连接到标题中并查找数据部分的不同之处。然后我可以记录 Header、OldData (Deleted) 和 NewData (Inserted) 值。但是,到目前为止,我还无法做到这一点。我搜索了许多 PIVOT 和 UNPIVOT 示例,但似乎都不是我想要的。
举个例子:
ID Name Value1 Value2 Value3 Value4
1 Apple 10 1/1/18 25 10.0
到:
Header Data
ID 1
Name Apple
Value1 10
Value2 1/1/18
Value3 25
Value4 10
任何帮助将不胜感激。
【问题讨论】:
标签: sql-server tsql pivot unpivot