sql:variable()函数,在XQuery表达式内包含 SQL 关系值的变量。
如下面xml:
DECLARE @xml XML = '
<Devs>
<lang name="VB.NET"/>
<lang name="C#.NET"/>
<lang name="Java" />
<lang name="Javascript" />
<lang name="ASP.NET" />
</Devs>
'
<Devs>
<lang name="VB.NET"/>
<lang name="C#.NET"/>
<lang name="Java" />
<lang name="Javascript" />
<lang name="ASP.NET" />
</Devs>
'
现在我们定义一个变量:
DECLARE @langname NVARCHAR(50)
SET @langname='ASP.NET'
SET @langname='ASP.NET'
然后可以在SELECT中使用此函数sql:variable()来传入此变量:
SELECT @xml.query(N'
/Devs/lang[@name=sql:variable("@langname")]
')
/Devs/lang[@name=sql:variable("@langname")]
')
执行得到结果: