Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将XML结果保存到SQL中的变量或表_Sql_Xml_Database_Stored Procedures - Fatal编程技术网

将XML结果保存到SQL中的变量或表

将XML结果保存到SQL中的变量或表,sql,xml,database,stored-procedures,Sql,Xml,Database,Stored Procedures,如何将XML保存到SQL存储过程生成的变量或表中 这是我的样本: DECLARE @ReportResultXml TABLE(RXml XML) DECLARE @ResultXml XML = NULL INSERT @ReportResultXml EXEC (@Script + ' FOR XML RAW, ROOT, XMLSCHEMA, ELEMENTS') SELECT @ResultXml = RXml FROM @ReportResultXml EXEC Repor

如何将XML保存到SQL存储过程生成的变量或表中

这是我的样本:

DECLARE @ReportResultXml TABLE(RXml XML)    
DECLARE @ResultXml  XML = NULL

INSERT @ReportResultXml EXEC (@Script + ' FOR XML RAW, ROOT, XMLSCHEMA, ELEMENTS')
SELECT @ResultXml = RXml FROM @ReportResultXml
EXEC Repor.ProcInsert 1, @ResultXml

SELECT @ResultXml
@Script
变量包含以下SQL查询:

DECLARE @PeriodID INT
SET @PeriodID = 12
SELECT TOP 10 PeriodID, Name
FROM Agent.Points
WHERE PeriodID = @PeriodID
该语句将生成以下错误:

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


这可能有助于您找到解决方案:

declare @script nvarchar(max)
set @script = 'select 1 as a, 2 as b for xml raw'

declare @ReportResultXml table (RXml XML)
declare @ResultXml xml

declare @sql nvarchar(max)

set @sql = 'set @ResultXml = (' + @script + ')'
execute sp_ExecuteSQL @sql, N'@ResultXml xml output', @ResultXml output

insert into @ReportResultXml select @ResultXml

select * from @ReportResultXml