2010-03-01 10 views

Répondre

0

Les paramètres doivent recevoir une type de données système (sauf texte ou image) ou un type de données défini par l'utilisateur. Je ne pense pas qu'il existe un type de données pouvant contenir une liste de valeurs. Toutefois, vous pouvez utiliser un paramètre par défaut qui inclut un caractère générique (%) si la procédure utilise le paramètre avec le mot clé like.

Par exemple, vous pouvez créer une procédure pour afficher des informations sur les tables système si l'utilisateur ne fournit pas un paramètre, comme ceci:

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 

Sinon, vous pouvez transmettre les paramètres appropriés pour une requête qui retourne cette liste de valeurs, puis créez une table temporaire (à l'intérieur de la procédure stockée) et remplissez-la avec la liste de valeurs avec une requête select into. Pour plus d'informations sur les tables temporaires dans les procédures stockées, voir here