2013-03-27 40 views
2

我想执行下面的T-SQL转换动态sql的结果XML

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

不过,我得到的

错误消息消息6819,级别16,状态5, 2号线

FOR XML子句是不允许在INSERT语句

回答

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) 
+0

你能提供一个插入另一列(如主键)和xml列的例子吗? – Maa421s 2015-11-17 19:45:06