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

это говорит -

запрос содержит подстановочные знаки (*) и проверки узлов с использованием имен узлов, и его трудно оптимизировать. Следовательно, он работает намного хуже, чем исходный запрос и подход к построению запроса.


person Angshuman Agarwal    schedule 12.08.2011    source источник


Ответы (1)


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

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