Saya memiliki prosedur tersimpan (SS2k8) dengan beberapa parameter tabel-nilai yang kadang-kadang akan menjadi nol atau kosong. Saya telah melihat posting StackOverflow ini yang mengatakan bahwa TVPs null / kosong harus dihilangkan dari daftar parameter pemanggilan. Masalah saya adalah bahwa saya tidak dapat menemukan cara memeriksa apakah ada yang kosong atau nol di dalam prosedur tersimpan sebagai "JIKA (@tvp IS NULL)" gagal pada pembuatan prosedur dengan pesan 'Harus mendeklarasikan variabel skalar "@tvp"'. Apakah saya harus melakukan SELECT COUNT (*) pada TVP dan memeriksa nol?
Kutipan kode:
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
...