sql:变量,用于在MS-SQL节点中定义xpath

时间:2013-03-08 10:16:05

标签: sql-server xml tsql xquery xquery-sql

我已经扫描了一些来自不同博客的示例和评论,虽然我已经看到很多使用sql:variable来选择某些节点/属性的例子,但我不确定像节点选择这样简单的东西可以替换为一个SQL变量。例如,如果我有以下内容:

declare @NodeStartPoint    varchar(255) = '/root/parent/child'

以后,我可能会使用交叉应用类似的东西:

cross apply MyXml.nodes(@NodeStartPoint)
显然上面的交叉应用节点选择不起作用。我也尝试过:

cross apply MyXml.nodes('sql:variable(@NodeStartPoint)')

也可能是其他一些奇怪的组合!

我的想法是,我可以从param等传递节点选择。

我已经开始浏览http://blogs.msdn.com/b/mrys/http://msdn.microsoft.com/en-us/library/ms186960%28SQL.90%29.aspx,但到目前为止,我找不到任何我想要实现的例子,这让我觉得我正在咆哮错误的树! :)

任何想法都感激不尽!!

1 个答案:

答案 0 :(得分:2)

好吧,考虑到我在互联网上看到类似问题的回复类型,回答我自己的问题。这一回事非常相似:Passing an argument to the T-SQL Nodes method (XML CROSS APPLY)

所以,我猜测在nodes()语句中使用变量替换不能完成它。