【问题标题】:Saving the XML results to variable or table in SQL将 XML 结果保存到 SQL 中的变量或表中
【发布时间】:2011-06-14 21:08:39
【问题描述】:

如何将 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 子句。

【问题讨论】:

    标签: sql xml database stored-procedures


    【解决方案1】:

    这可能会帮助您找到解决方案:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 2010-12-03
      相关资源
      最近更新 更多