在SQL中,如果您有这样的查询:
SELECT @text = @text + FirstName + ', '
FROM Persons
这通常会产生一个@text
变量,约翰,杰克,皮特,'等
但是,在我的情况下这个查询:
SELECT @text = @text + FirstName + ', '
FROM Server.Database.dbo.Persons
仅返回一行。该数据库是SQL 2008 R2。
答案 0 :(得分:1)
显然,这种技术仅适用于本地数据库。链接服务器查询仅来回发送一次变量,因此只追加最后一行。
解决方案是将结果存储在本地临时表中,然后执行MAV:
SELECT FirstName + ', ' AS t
INTO #temp
FROM Server.Database.dbo.Persons
SELECT @text = @text + t FROM #temp;