XQUERY SQL - Как передать отдельные элементы узла в качестве переменных? - PullRequest
3 голосов
/ 12 августа 2011

Есть ли альтернативный способ передать элементы узла динамически , чем тот, который показан ниже -?

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 голосов
/ 12 августа 2011

Может быть так:

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