2017-05-05 9 views
0

내 프로 시저에서 변수를 임시 테이블에 넣으려고 값을 선언 한 변수를로드하고 있습니다. 나는이 일을하고있다 :임시 테이블에 @Var를 선택하십시오.

select cast(@rec_cnt as varchar(5), @tbl_name 
INTO #TEMP_TBL_DUP_CNT 

그러나 점점 계속 받고있다 : ','근처의 잘못된 구문. 즉, 열 사이의 쉼표로 인해 proc 실행하려고 할 때 문제가 발생합니다. 이 성명서에 무슨 문제가 있습니까?

임시 테이블이 이미 존재하지 않는지 확인했습니다. 어쨌든 그렇게해서는 안됩니다.

방금 ​​테이블 데이터를 임시 테이블에로드하기 위해 비슷한 쿼리를 실행했는데 성공했습니다. 선언 된 변수 값을 직접 사용할 수 있습니까? 그렇다면 어떻게해야합니까?

편집 : 또한이 임시 테이블을 쿼리 할 수있는 방법을 물어보고 싶었습니다. SP의 범위에서해야 할 필요가 있음을 이해합니다. 어떤 결과를 모든 변수에로드 할 수 있습니까? 임시 테이블에서 변수를 선택한 다음 인쇄해야 할 필요가 있다고 생각했습니다.

감사

앤드류

+2

괄호를 계산합니다. –

+1

'캐스트'를 닫지 못했습니다. 즉)')'는'varchar (5)'뒤에 필요합니다. – Sankar

+0

고마워, 나는 게시 한 후 이것을 알아 차렸다 !! 여전히 varchar에 두 변수를 모두 캐스팅해야했지만 여전히 불평했습니다. – Andrew

답변

0

당신은 당신의 cast에 닫는 괄호를 누락이

DECLARE  
    @rec_cnt INT=1, 
    @tbl_name INT=2 

IF OBJECT_ID('tempdb..#TEMP_TBL_DUP_CNT') IS NOT NULL 
    Drop table #TEMP_TBL_DUP_CNT 

CREATE table #TEMP_TBL_DUP_CNT(rec_cnt varchar(5),tbl_name varchar(5)) 
    INSERT INTO #TEMP_TBL_DUP_CNT 
    SELECT cast(@rec_cnt as varchar(5)), @tbl_name 
+0

스크립트 시작 부분에 드롭 테이블을 사용했습니다. 첫 번째 테이블에 대해 INSERT..INTO temp를 사용하고 각각의 후속 테이블에 대해 이미 select ... in temp를 사용했습니다. – Andrew

1

을 시도해보십시오

        | 
            v 
select cast(@rec_cnt as varchar(5)), @tbl_name 
INTO #TEMP_TBL_DUP_CNT 
+0

고마워, 나는 게시 한 후에 이것을 알아 차렸다 !! 여전히 varchar에 두 변수를 모두 캐스팅해야했지만 여전히 불평했습니다. – Andrew