Передать значение функции в хранимую процедуру в MS SQL - PullRequest
1 голос
/ 06 августа 2009

У меня есть функция с именем dbo.GetFoo (). У меня также есть хранимая процедура модульного тестирования под названием AssertEqual (которая принимает @TargetValue sql_variant, @ExpectedValue sql_variant и @Message varchar)

Я хочу вызвать GetFoo () и проверить, возвращает ли оно правильное значение «X». Мой оператор T-SQL:

exec AssertEqual dbo.GetObjectType(), 'S', 'Check If S'

Я получаю это сообщение:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '.'.

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

Есть ли способ обойти это, кроме объявления переменной для целевого значения?

Альтернативно: есть ли лучший способ выполнить модульное тестирование для SQL?

1 Ответ

5 голосов
/ 06 августа 2009

Это ограничение T-SQL: ему не нравятся вызовы пользовательских функций, передаваемых в качестве параметров хранимой процедуре. Вы должны объявить переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...