2009-07-06 2 views
4

:이 SQL에 작동는 SQL 서버에 저장 프로 시저에서 임시 테이블에 삽입 내가 여기에 설명되어 있습니다 무엇을 달성하기 위해 노력하고있어 2000

http://sqldev.wordpress.com/2008/05/06/insert-into-temporary-table-from-stored-procedure/

이 기사는 (코멘트를 통해 지원) 말한다 2000 년을 제외하고는 쉽지 않을 수도 있습니다.

2008 미리 조금 까다이었다 - 그것은 SQL 서버 2008에서 밝혀 으로이 쉽게 수행 할 수 있습니다.

및 의견 상태 :

그것은 2008 기능이 아니다. 내가 기억하기 때문에 그것은 이었습니다 ... SQL 서버 2000에서? 어쨌든 훌륭한 기능입니다!

어떻게 SQL Server 2000에서이 작업을 신속하게 수행 할 수 있습니까?

Msg 197, Level 15, State 1, Line 7 
EXECUTE cannot be used as a source when inserting into a table variable. 

내가 this Stackoverflow post을 찾을 않았고 그것은 또한은 SQL Server 2000 그러나이 수행 될 수 있다는 개념을 지원 기사가, 나는 다음과 같은 오류 메시지가 받고 있어요 기반으로 코드를 사용

게시물은 SQL Server 2005를 다루는 것이 었으며 2000 년에는 많이 다루지 않았습니다.

답변

7

2005 버전부터 SQL Server에서이 작업을 수행 할 수 있습니다. SQL Server 2000은 테이블 변수를 지원하지만 테이블 변수에 EXECUTE이있는 INSERT을 지원하지 않습니다. 가장 근접하게 지원되는 대안은 임시 테이블을 사용하는 것입니다.

대신 @mytable 같은 테이블 변수를 사용하는 #mytable처럼 뭔가라는 테이블을 사용하여 수행 할 수 있습니다 insertexec 저장된 프로 시저를 사용하여. 먼저 create table 명령을 사용하여 임시 테이블을 만들어야합니다. 테이블 가변적이고 대신 실제 임시 테이블을 사용하여

+0

감사합니다. 너 죽었어. 나는 그 오류 메시지에서 깨달았어야했다. –

4

시도 ...

CREATE TABLE #jobs 
(jobcount int 
) 
INSERT 
INTO #jobs 
EXEC 
sp_executesql 
N’select 1 AS jobcount’ 
SELECT 
* 
FROM #jobs 
+1

감사합니다. –

관련 문제