Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment passer une liste en paramètre dans une procédure stockée ?

La méthode préférée pour transmettre un tableau de valeurs à une procédure stockée dans SQL Server consiste à utiliser des paramètres de table.

Définissez d'abord le type comme ceci :

CREATE TYPE UserList AS TABLE ( UserID INT );

Ensuite, vous utilisez ce type dans la procédure stockée :

create procedure [dbo].[get_user_names]
@user_id_list UserList READONLY,
@username varchar (30) output
as
select last_name+', '+first_name 
from user_mstr
where user_id in (SELECT UserID FROM @user_id_list)

Donc, avant d'appeler cette procédure stockée, vous remplissez une variable de table :

DECLARE @UL UserList;
INSERT @UL VALUES (5),(44),(72),(81),(126)

Et enfin appelez le SP :

EXEC dbo.get_user_names @UL, @username OUTPUT;