У меня есть хранимая процедура (SS2k8) с парой табличных параметров, которые иногда будут нулевыми или пустыми. Я видел этот пост StackOverflow, в котором говорится, что нулевые / пустые TVP должны быть просто исключены из списка параметров вызова. Моя проблема заключается в том, что я не могу понять, как проверить наличие пустых или нулевых значений внутри хранимой процедуры, поскольку «IF (@tvp IS NULL)» завершается неудачно при создании процедуры с сообщением «Необходимо объявить скалярную переменную« @tvp »». Должен ли я сделать SELECT COUNT (*) на TVP и проверить на ноль?
Выдержка из кода:
CREATE PROCEDURE [foo] (@tvp [TvpType] READONLY) AS
IF (@tvp IS NOT NULL) -- doesn't work
BEGIN
-- lots of expensive processing
END
ELSE
BEGIN
-- a little bit of cheap processing
END
...