将动态sql的结果转换为xml

时间:2013-03-27 05:42:59

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

我想执行以下T-sql

declare @sql varchar(max) = 'select 1 a, 2 b for xml path (''''), root(''root'')'
declare @t table (x xml)
insert into @t exec (@sql)

但是,我收到了

的错误消息
  

Msg 6819,Level 16,State 5,Line 2

     

INSERT语句中不允许使用FOR XML子句

1 个答案:

答案 0 :(得分:3)

在一个额外的select语句中嵌入创建XML的查询。

declare @sql varchar(max) = '
select
  (
  select 1 a,
         2 b
  for xml path (''''), root(''root'')
  )'

declare @t table (x xml)
insert into @t exec (@sql)