XQuery/XPath使用sql参数?

ca9*_*3d9 5 xml sql-server xquery sql-server-2005 sql-server-2008

我试着实现以下代码.

declare @para varchar(10) = 'b';
declare @x xml = '
<x>
    <a>1111</a>
    <b>2222</b>
    <c>3333</c>
</x>';
select @x.query('/x/sql:variable("@para")');
Run Code Online (Sandbox Code Playgroud)

上面的代码应该得到节点<b>2222</b>.但是,它会出现以下错误

Msg 9335, Level 16, State 1, Line 8
XQuery [query()]: The XQuery syntax '/function()' is not supported.

Mik*_*son 11

declare @para varchar(10) = 'b';
declare @x xml = '
<x>
    <a>1111</a>
    <b>2222</b>
    <c>3333</c>
</x>';
select @x.query('/x/*[local-name()=sql:variable("@para")]');
Run Code Online (Sandbox Code Playgroud)