我有一个返回XML的存储过程。返回的XML不是作为参数,而是作为SELECT语句的结果:
create procedure #xml_test
as
select 1 as a for xml raw
go
我正在尝试将这个XML放入一个变量中:
declare @xml as nvarchar(max)
但我不知道如何做。我的最佳想法是使用INSERT INTO ... EXEC,但我收到错误消息:“FOR XML子句不允许在INSERT语句中。”
create table #tmp(col1 nvarchar(max) not null)
insert into #tmp
exec #xml_test
这种方法在通常的文本中效果很好:
create procedure #text_test
as
select 'aaa' as a
go
insert into #tmp
exec #text_test
我想知道是否有人遇到过这个问题?我的SQL Server版本是2005。