将变量插入临时表

时间:2017-06-27 17:56:36

标签: sql sql-server sql-server-2008

如何将声明的var插入临时表?

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

2 个答案:

答案 0 :(得分:3)

删除GO声明。它将查询分为两个批次,变量仅限于他们在其中创建的批次。

您也不需要子选择。只需执行以下操作:

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

答案 1 :(得分:0)

对查询进行以下更改

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

     if @ConcatStringlength exceed the current  Item2 VARCHAR(200)
  • else错误:字符串或二进制数据将被截断。    该声明已被终止。