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

时间:2011-08-12 09:19:22

标签: sql-server sql-server-2008 query-optimization xquery-sql

是否有另一种方法可以动态传递节点元素 ,而不是下面显示的那个 - ?

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

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

在 -

部分下

示例:使用sp_executesql查询

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

它说 -

  

查询包含使用节点名称的通配符(*)和节点测试   难以优化。因此,它的表现要差得多   原始查询和查询构造方法。

1 个答案:

答案 0 :(得分:0)

可能是这样的:

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