当前位置: 代码迷 >> Sql Server >> XML转行集偏题
  详细解决方案

XML转行集偏题

热度:28   发布时间:2016-04-24 19:06:56.0
XML转行集难题
用途:跨服务器调用存储过程时传输数据。
输入:一个行集,列数不定,用For XML RAW模式将其转换成XML
要求输出:将此XML还原成输入的行集

用OPENXML时,因为不知道原行集列结构,所以无法在with子句定义结构。NODES方法也是同样的问题。
当然,可以调用时传入行集的列定义,或自己解析,再传入OPENXML的with子句,但这样就只能用动态SQL方式执行,无法将结果集传出给动态表达式外部使用。

另外报个CSDN发帖时的漏洞:
1.标签输入后不能编辑
2.标最多添加5个标签,实际只能添加4个
------解决方案--------------------
你明明上了5个标签
------解决方案--------------------
关注下,XML处理的不多,真心想帮楼主
------解决方案--------------------
这个纯粹 看看  围观
------解决方案--------------------
在openxml之后指定表WITH 表名;  
------解决方案--------------------
DECLARE @xml XML
 DECLARE @idoc int
 SET @xml =(SELECT TOP 10000 a.* FROM sys.[sysobjects] AS a,sys.[sysobjects] AS b,sys.[sysobjects] AS c  FOR XML PATH('message'),ROOT('root'))
 
--1
DECLARE @dt DATETIME=GETDATE()
EXEC sp_xml_preparedocument @idoc OUTPUT, @xml
SELECT *   
FROM OPENXML(@idoc,'/root/message',2)   
WITH sysobjects;  
EXEC sp_xml_removedocument @idoc


直接贴个例子,楼主看看是不是这情况
  相关解决方案