Ich habe eine gespeicherte Prozedur (SS2k8) mit einigen tabellenwertigen Parametern, die manchmal null oder leer sind. Ich habe diesen StackOverflow-Beitrag gesehen , der besagt, dass null / leere TVPs einfach in der Liste der aufrufenden Parameter weggelassen werden sollten. Mein Problem ist, dass ich nicht herausfinden kann, wie in der gespeicherten Prozedur nach Leer oder Null gesucht werden kann, da "IF (@tvp IS NULL)" bei der Prozedurerstellung mit der Meldung "Muss die skalare Variable" @tvp "deklarieren" fehlschlägt. Muss ich auf dem TVP einen SELECT COUNT (*) ausführen und auf Null prüfen?
Code-Auszug:
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
...