2017-05-05 3 views
0

私の手続きでは、宣言された変数を値でロードしてから、変数をテンポラリテーブルに入れようとしています。私はこれをしています:テンポラリテーブルに@Varを選択

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

しかし、msgを得るのを続ける: '、'の近くの構文が間違っています。つまり、procを実行しようとすると列間のコンマが問題になります。この声明で何が間違っていますか?

私はテンポラリテーブルが存在していないことを確認しました。

私はちょうど同じようなクエリを実行してテーブルデータを一時テーブルにロードし、それが機能しました。宣言された変数の値を直接使用することはできませんか?

EDIT:どのように私はこの一時テーブルを照会することができます質問したかった。私は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..into tempが使用されています。 – Andrew

1

をお試しください:

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

ありがとう、私はちょうど投稿後にこれに気づいた!私はまた、両方の変数をvarcharにキャストする必要がありました。 – Andrew

関連する問題