2017-06-27 9 views
1

Wie kann ich deklarierte var in temporäre Tabelle einfügen?Variable in temporäre Tabelle einfügen

DECLARE @ConcatString VARCHAR(4000) 
SELECT @ConcatString = COALESCE(@ConcatString + ', ', '') + LanguageName FROM EmployeeLanguage where EmployeeId=10504 
SELECT @ConcatString AS Language 

GO 

DECLARE @T1 TABLE (
Item1 BigInt, 
Item2 VARCHAR(200) 
) 
INSERT INTO @T1 select 1,(SELECT @ConcatString AS Language) as t 

select * from @T1 

Antwort

3

Entfernen Sie die GO Anweisung. Es trennt die Abfrage in zwei Batches, und Variablen sind nur auf den Stapel beschränkt, in dem sie erstellt wurden.

Sie benötigen auch nicht die Sub-Auswahl. Genau wie folgt vor:

Insert Into @T1 
     (Item1, Item2) 
Select 1, @ConcatString; 
0

die folgenden Änderungen vor, um die Abfrage

1. Remove the keyword GO. 
2. Item2 VARCHAR(200) column size to VARCHAR(4000) 

    if @ConcatStringlength exceed the current Item2 VARCHAR(200) 
  • sonst Fehler: Zeichenfolge oder Binär-Daten abgeschnitten werden würde. Die Anweisung wurde beendet.
Verwandte Themen