Параметры должны иметь системный тип данных (кроме текста или изображения) или определенный пользователем тип данных. Я не думаю, что есть тип данных, который может содержать список значений.
Однако вы можете использовать параметр по умолчанию, который включает подстановочный знак (%) - если процедура использует параметр с ключевым словом like.
Например, вы можете создать процедуру для отображения информации о системных таблицах, если пользователь не предоставляет параметр, например:
create procedure showind4
@table varchar(30) = "sys%" as
select table_name = sysobjects.name,
index_name = sysindexes.name,
index_id = indid
from sysindexes, sysobjects
where sysobjects.name like @table
and sysobjects.id = sysindexes.id
Кроме того, вы можете передать подходящие параметры для запроса, который возвращает этот список значений, а затем создать временную таблицу (внутри хранимой процедуры) и заполнить ее списком значений с помощью запроса select into
. Подробнее о временных таблицах в хранимых процедурах см. здесь