我有一个历史表,我需要从该表中以 ColumnName、ColumnValue 形式选择值。我正在使用 SQL Server 2008,但不确定是否可以使用 PIVOT 函数来完成此操作。以下是我需要完成的简化示例:
这就是我所拥有的:
该表的架构是
CREATE TABLE TABLE1 (ID INT PRIMARY KEY, NAME VARCHAR(50))
“历史”表的架构是
CREATE TABLE TABLE1_HISTORY(
ID INT,
NAME VARCHAR(50),
TYPE VARCHAR(50),
TRANSACTION_ID VARCHAR(50))
这是来自 TABLE1_HISTORY 的数据
ID NAME TYPE TRANSACTION_ID
1 Joe INSERT a
1 Bill UPDATE b
1 Bill DELETE c
我需要将 TABLE1_HISTORY 中的数据提取成这种格式:
TransactionId Type ColumnName ColumnValue
a INSERT ID 1
a INSERT NAME Joe
b UPDATE ID 1
b UPDATE NAME Bill
c DELETE ID 1
c DELETE NAME Bill
除了升级到企业版并利用内置的更改跟踪功能之外,您对完成这项任务有什么建议?