Частенько бывает, что нужно в функцию или процедуру отправить ID элементов, над которыми нужно будет производить некоторые действия, но изначально не ясно, сколько таких элементов будет. Есть такой выход: в качестве параметра ID'шники отправляем в виде строки типа '1,2,3,4,9..', а в процедуре обрабатываем:
DECLARE @IDS VARCHAR(250)
SET @IDS='1,2,5,7,9'
DECLARE @str VARCHAR(250)
SET @str = 'select ' + REPLACE(@IDS, ',', ' union all select ')
DECLARE @tb TABLE (ID INT )
INSERT INTO @tb EXEC(@str)
SELECT * FROM @tb
Лекго и просто (Спасибо Антону)