SQL多赋值变量只有1(一)行

时间:2014-07-11 16:48:19

标签: sql sql-server-2008-r2 linked-server

在SQL中,如果您有这样的查询:

SELECT @text = @text + FirstName + ', '
  FROM Persons

这通常会产生一个@text变量,约翰,杰克,皮特,'等

但是,在我的情况下这个查询:

SELECT @text = @text + FirstName + ', '
  FROM Server.Database.dbo.Persons

仅返回一行。该数据库是SQL 2008 R2。

1 个答案:

答案 0 :(得分:1)

显然,这种技术仅适用于本地数据库。链接服务器查询仅来回发送一次变量,因此只追加最后一行。

解决方案是将结果存储在本地临时表中,然后执行MAV:

SELECT FirstName + ', ' AS t
  INTO #temp
  FROM Server.Database.dbo.Persons

SELECT @text = @text + t FROM #temp;