XQUERY SQL - 如何将单个节点元素作为变量传递?

Posted

技术标签:

【中文标题】XQUERY SQL - 如何将单个节点元素作为变量传递?【英文标题】:XQUERY SQL - How to pass individual node element(s) as variables? 【发布时间】:2011-08-12 09:19:22 【问题描述】:

除了下面显示的方式之外,还有其他方式动态地传递节点元素吗?

select XMLTable.XMLCOL.query('//*[local-name()=sql:variable("@node")')

例如,即使我试图给出完全限定的路径,我也不想对节点元素进行硬编码,而是希望将它们作为参数单独传递。

在部分下-

示例:使用 sp_executesql 进行查询

@http://msdn.microsoft.com/en-us/library/ms345118(v=sql.90).aspx

它说-

查询包含通配符 (*) 和使用节点名称的节点测试,并且是 很难很好地优化。因此,它的性能比 原始查询和查询构造方法。

【问题讨论】:

【参考方案1】:

可能是这样的:

declare @qry nvarchar(1000)
set @qry = 'select XMLCOL.query(''//' + @node + ''') from XMLTable'
exec( @qry )

【讨论】:

以上是关于XQUERY SQL - 如何将单个节点元素作为变量传递?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MS SQL 2005 中使用 SQL XQuery 修改多个节点

XQuery 术语

通过 XCC 将 XQuery xml 元素作为外部变量传递给 Marklogic

sql 使用XQuery方法查询,值,存在,节点在SQL Server中查询XML

XQuery sql 仅在存在时选择节点

将单个xml节点作为数组转换为json