У меня есть таблица истории, и мне нужно выбрать значения из этой таблицы в форме 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 и использования встроенной функции отслеживания изменений?