我有一個歷史表,我需要從ColumnName,ColumnValue窗體中的這個表中選擇值。我正在使用SQL Server 2008,我不確定是否可以使用PIVOT函數來完成此操作。下面是什麼,我需要完成一個簡單的例子:選擇行數據作爲ColumnName和值
這是我有:
表的模式是
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
除了升級到企業版,並利用內置的更改跟蹤功能,什麼是你完成這個任務的建議嗎?
是的,但是實際表中有很多列,所以我希望不必爲每一列執行一條select語句,因爲性能很糟糕。 – Bobcat1506 2010-05-11 14:48:48
執行計劃告訴你什麼?很多桌面掃描?不添加覆蓋索引會加快速度嗎? – 2010-05-11 17:40:14