如何在变量中存储FOR XML Path的输出?

时间:2012-10-02 04:26:50

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

我想将XML Path的输出存储在变量中。但是这不起作用:

Declare @Tab    dbo.SingleColumnTable

Insert INTO @Tab

Values(
    'Jack'
)

Insert INTO @Tab

Values(
    'Armageddon'
)

Declare @RetVal varchar(8000) = ''

Select Top 1 @RetVal = Data
From
(
    Select ';' + ' ' + Name as 'Data'
               From @Tab t2
               for xml path('')
) v  

正如您所看到的,我正在尝试将返回的输出的列名设置为Data,但它不起作用。我收到错误Invalid column name 'Data'.

1 个答案:

答案 0 :(得分:10)

尝试更改

Select Top 1 @RetVal = Data 
From 
( 
    Select ';' + ' ' + Name as 'Data' 
               From @Tab t2 
               for xml path('') 
) v

Select @RetVal = 
( 
    Select ';' + ' ' + Name as Data
   From @Tab t2 
   for xml path('') 
)

SQL Fiddle DEMO