Я пытаюсь вычислить выражение в функции, и случается так, что XQuery не может получить строку из переменной SQL.
DECLARE @XML AS XML = ''
DECLARE @Formula AS NVARCHAR(MAX) = '1+1'
SELECT @XML.query(@Formula)
С использованием ...
SELECT @XML.query('sql:variable("@Formula")')
... просто возвращает строку 1+1
, а не сумму.
Есть ли способ заставить это работать в SQL (без использования хранимых процедур, потому что они не будут выполняться внутри функции)?
Заранее спасибо!
EXEC
илиsp_executesql
, но ни один из них нельзя использовать в пользовательской функции (см. этот вопрос). Вы упомянули об использовании функции, но неясно, является ли это UDF TSQL или нет; если вы можете быть более точным в том, как вы выполняете этот код, тогда у кого-то может быть лучший ответ. - person Pondlife   schedule 15.05.2013select dbo.MyFunc(SomeColumn) from dbo.SomeTable
также модифицировал данные. - person Pondlife   schedule 16.05.2013