2017-05-05 4 views
0

In meiner Prozedur lade ich deklarierte Variablen mit Werten dann versuchen, die Variablen in eine temporäre Tabelle zu setzen. Ich mache das:Wählen Sie @Var in temporäre Tabelle

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

Aber immer msg: Falsche Syntax in der Nähe von ','. Das heißt, das Komma zwischen den Spalten verursacht ein Problem, wenn ich versuche, proc auszuführen. Was ist falsch an dieser Aussage?

Ich habe überprüft, Temp-Tabelle existiert nicht bereits, wie es sollte nicht sowieso.

Ich habe gerade eine ähnliche Abfrage ausgeführt, um die Tabellendaten in eine temporäre Tabelle zu laden, und das hat funktioniert. Kann ich die deklarierten Variablenwerte nicht direkt verwenden, wenn ja, was mache ich sonst?

EDIT: Auch wollte fragen, wie kann ich diese temporäre Tabelle abfragen. Ich verstehe, ich muss es im Rahmen des SP tun, welche Art von Variable kann ich das ganze Ergebnis laden? Ich dachte, dass ich in die Variable aus der Tempentabelle auswählen und dann drucken müsste?

Dank

Andrew

+2

die Klammern zählen. –

+1

Sie haben es versäumt, Cast zu schließen. ')' wird nach 'varchar (5)' benötigt. – Sankar

+0

Danke, das habe ich erst nach dem Posting bemerkt !! Ich musste auch beide Variablen auf Varchar anwenden, da es sich immer noch beschwerte. – Andrew

Antwort

0

Versuchen Sie, diese

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

Ich habe die Drop-Tabelle am Anfang des Skripts verwendet. Für die erste Tabelle haben Sie INSERT..INTO temp verwendet und dann für jede nachfolgende Tabelle select..into temp als bereits erstellt verwendet. – Andrew

1

Sie Ihre schließenden Klammer auf cast fehlt:

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

Danke, das habe ich erst nach dem Posting bemerkt !! Ich musste auch beide Variablen auf Varchar anwenden, da es sich immer noch beschwerte. – Andrew

Verwandte Themen