나는 히스토리 테이블을 가지고 있으며이 테이블의 ColumnName, ColumnValue 폼에서 값을 선택해야합니다. SQL Server 2008을 사용하고 있으며이를 수행하기 위해 PIVOT 함수를 사용할 수 있는지 확실하지 않았습니다. 내가 무엇을ColumnName 및 값으로 행 데이터 선택
이있다 :
이테이블의 스키마는 "역사"테이블의 스키마가
CREATE TABLE TABLE1_HISTORY(
ID INT,
NAME VARCHAR(50),
TYPE VARCHAR(50),
TRANSACTION_ID VARCHAR(50))
입니다
CREATE TABLE TABLE1 (ID INT PRIMARY KEY, NAME 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
실행 계획에서 무엇을 말합니까? 테이블 스캔이 많이 있습니까? 커버 인덱스를 추가하지 않으면 작업 속도가 빨라지는 것입니까? –