2017-11-07 1 views
1

SQL Server에 대한 일반적인 질문이 있습니다.SQL Server의 데이터 병합 2016

입력란에 @reportID 매개 변수가 있고 그 보고서의 기록을 반환하는 SP가 있습니다. 약 3000 개의 보고서가 있고 각 보고서의 내역을 처리해야하므로 반환 된 데이터를 삽입 할 임시 테이블을 만들었지 만 보고서 ID를 사용하지 않으면 쓸모가 없습니다.

OPEN cursor_reportStats 
FETCH NEXT FROM cursor_reportStats INTO @ReportID 

WHILE @@FETCH_STATUS = 0 
BEGIN 
INSERT INTO @temp 
EXEC dbo.GetHistory @ReportID 

FETCH NEXT FROM cursor_reportStats INTO @ReportID 
END 

그래서 내가 필요로 무엇을 ReportID 열 + 데이터의 나머지 부분이있을 것이다 번째 @temptable 추가 GetHistory

에 의해 반환 된 각 라인에

많은 감사

+0

돌아 –

+0

을 @ReportID 나는 SP를 수정할 수 있다면 확실한 옵션이 될 것, 그것을 언급하는 것을 잊었다. 어쨌든 해결책을 찾았습니다 :) – 99LittleBugsInTheCode

답변

1

을 @ReportID를 연결하는 것입니다. @temp 테이블은 버퍼 테이블이되며 각 반복마다 삭제됩니다. 각 반복 끝에 현재 @ReportID 값과 버퍼 테이블의 데이터를 두 번째 @temptable에 삽입합니다.

그래서, 이런 식으로 뭔가있을 것이다 : 값 GetHistory 열 ReportID에서

OPEN cursor_reportStats 
FETCH NEXT FROM cursor_reportStats INTO @ReportID 

WHILE @@FETCH_STATUS = 0 
BEGIN 

DELETE FROM @temp; 

INSERT INTO @temp 
EXEC dbo.GetHistory @ReportID 


INSERT INTO @temptable 
SELECT @ReportID, * 
FROM @temp 

FETCH NEXT FROM cursor_reportStats INTO @ReportID 
END