2009-02-02 4 views
0

여기서 내가 뭘 잘못하고 있니? INTO 절을 사용하면 Microsoft의 Transact-SQL 참조 페이지에서 찾은 예제와 일치하는 것으로 보이지만 뭔가 빠져 있어야합니다.Transact-SQL INTO 절 구문

DECLARE @rowtemp table(TestRunID int, RunOrder int) 

SELECT TestRunID, ROW_NUMBER() OVER (ORDER BY TestRuns.TestTime ASC) 
AS 'RunOrder' INTO @rowtemp FROM TestRuns WHERE RunID = @runID 

답변

6

당신은

조 말했다 무엇이

DECLARE @rowtemp table(TestRunID int, RunOrder int) 

INSERT INTO @rowtemp 
SELECT TestRunID, ROW_NUMBER() OVER (ORDER BY TestRuns.TestTime ASC) 
AS 'RunOrder' FROM TestRuns WHERE RunID = @runID 
+0

임시 테이블과 테이블 변수의 주요 차이점 중 하나입니다. –

1

SELECT INTO에 테이블 변수를 사용할 수 없습니다. 대신 # 임시 테이블을 사용하십시오. 먼저 테이블을 생성하지 않을 수 있도록

0

을 시도 테이블을 만들 것 INTO를 선택 또한 테이블 변수와 SELECT INTO를 사용 할 수 없습니다. 또한 INTO는 새 테이블을 만듭니다. 이 테이블은 이미 있으므로 (방금 작성한) 명령문은 실패합니다.

1

테이블 변수는 SELECT INTO와 함께 사용할 수 없으므로 #temp 테이블을 사용하거나 구문을 약간 재 배열하여 읽을 수 있습니다.

DECLARE @rowtemp table(TestRunID int, RunOrder int) 

INSERT INTO @rowtemp 
SELECT 
    TestRunID, 
    ROW_NUMBER() OVER (ORDER BY TestRuns.TestTime ASC) AS 'RunOrder' 
FROM 
TestRuns 
WHERE 
RunID = @runID