XML转行集难题 40xxyj6450]

发布时间:2016-12-8 4:15:52 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"XML转行集难题 40xxyj6450]",主要涉及到XML转行集难题 40xxyj6450]方面的内容,对于XML转行集难题 40xxyj6450]感兴趣的同学可以参考一下。

用途:跨服务器调用存储过程时传输数据。 输入:一个行集,列数不定,用For XML RAW模式将其转换成XML 要求输出:将此XML还原成输入的行集 用OPENXML时,因为不知道原行集列结构,所以无法在with子句定义结构。NODES方法也是同样的问题。 当然,可以调用时传入行集的列定义,或自己解析,再传入OPENXML的with子句,但这样就只能用动态SQL方式执行,无法将结果集传出给动态表达式外部使用。 另外报个CSDN发帖时的漏洞: 1.标签输入后不能编辑 2.标最多添加5个标签,实际只能添加4个

你明明上了5个标签

关注下,XML处理的不多,真心想帮楼主

引用 1 楼 ky_min 的回复:你明明上了5个标签 的确,发出来才看到有5个,但我在发帖的时候,第一个有问题,我是已经删除了,然后再添加其他的,发现只能添加4个,最终发出时第一个删除的又回来了。

该回复于2013-01-28 13:57:19被管理员删除

这个纯粹 看看  围观

在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 直接贴个例子,楼主看看是不是这情况

结帖算了。 目前的解决方案只能是动态SQL。 远程传入XML数据集的同时还传入表定义。 再在远程存储过程中用动态sql解析XML成临时表。 这个动态sql同时还包含所有需要对这个临时表的操作。也就是不把生成的临时表传出给其他过程使用。

引用 7 楼 roy_88 的回复:SQL code?1234567891011DECLARE @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'),RO…… 不太一样。你这个代码里是已经预知xml结构为sysojbects表,而我的需求是不知表结构。 谢谢你了。

上一篇:SQL2000能做数据仓库吗?能不能推荐一下这方面的资料 40sjcmhx8w8e]
下一篇:有没有指代一个数据库的同义词? 100sz_haitao]

相关文章

相关评论