Tengo un procedimiento almacenado (SS2k8) con un par de parámetros con valores de tabla que a veces serán nulos o vacíos. He visto esta publicación de StackOverflow que dice que los TVP nulos / vacíos simplemente deberían omitirse de la lista de parámetros de llamada. Mi problema es que no puedo encontrar la manera de verificar si está vacío o nulo dentro del procedimiento almacenado ya que "IF (@tvp IS NULL)" falla en la creación del procedimiento con el mensaje 'Debe declarar la variable escalar "@tvp"'. ¿Tengo que hacer un SELECT COUNT (*) en el TVP y verificar cero?
Extracto del código:
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
...