Если @Activity - одно значение, вы можете использовать
(@Activity IN ('0003', '0007'))
Но если @Activity - это список значений, разделенных запятыми, вы все равно не можете передать его как один параметр. Параметры SQL никогда не могут заменить список значений - только одно значение . Если строка, которую вы передаете для параметра, выглядит как список чисел, это не имеет значения. Это все еще одно значение, представляющее собой строку цифр и запятых.
Вы можете попробовать этот трюк , популяризированный в «Переполнении стека» самим Джоэлем Спольски:
WHERE ',' + @Activity + ',' LIKE '%,' + '0003' + ',%'
OR ',' + @Activity + ',' LIKE '%,' + '0007' + ',%'
Но это работает ужасно, потому что ведущие символы подстановки в шаблонах вызывают сканирование таблицы.