履歴テーブルがあり、このテーブルから 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
Enterprise Edition にアップグレードし、組み込みの変更追跡機能を活用する以外に、このタスクを達成するための提案は何ですか?