2012-10-02 5 views
0

약 60 개의 열을 포함하는 레코드를 반환하는 저장 프로 시저를 만들었습니다. 그러나, 나는 그것이 반환하는 60 열 중에서 약 40 개의 동일한 저장 프로 시저 중에서 프로젝트를 선택하고 싶습니다. 반환해야하는 열을 올바르게 지정하려면 어떻게합니까?SQL Server에 삽입하십시오. . . Execute 문

에 대한 어떤 #TempTable 에 삽입하면 본질적으로, 규칙 무엇인가 (.......) Exec에서의 StoredProcedure

?

답변

0

규칙은 매우 간단합니다. SP 내의 선택 영역에는 #Temable과 같은 열이 있어야하며 정확히 동일한 유형이 아닌 경우 열이 호환 가능하거나 일치해야합니다 (예 : int는 VARCHAR에 들어갑니다.

60 개의 열 중에서 40 개의 열을 선택해야하는 경우 2 개의 임시 테이블을 통해 전달하거나 OPENQUERY와 같은 해킹을 사용하여 SP 호출을 원격 데이터 세트로 처리해야합니다.

0

많은 출력 매개 변수 또는 NVARCHAR (MAX) 한 출력 매개 변수를 사용할 수 있습니다.

'SELECT '+ Col01.Value + ','+ Col02.Value + ',' ... + ',' + Col40.Value 

그래서, 상점 절차는 같은 반환합니다 :

'SELECT 10,50,''2012-10-02'',''Joro''' 

을 그리고 당신이 수행 할 수 있습니다 또한

DECLARE @OUTPUT NVARCHAR(MAX)='SELECT 10,50,''2012-10-02'',''Joro''' 

EXEC sp_executesql @OUTPUT 

을, 여기에이 솔루션을 확인 당신은 좋아 초기화 할 수 :

Insert results of a stored procedure into a temporary table