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

SQL :dans la clause d'une procédure stockée :comment transmettre des valeurs

Pour SQL Server 2005, consultez l'excellent article d'Erland Sommarskog sur les tableaux et les listes dans SQL Server 2005 qui montre quelques techniques de traitement des listes et des tableaux dans SQL Server 2005 (il a également un autre article pour SQL Server 2000).

Si vous pouviez mettre à niveau vers SQL Server 2008, vous pouvez utiliser la nouvelle fonctionnalité appelée "paramètre de valeur de table":

Tout d'abord, créez un type de tableau défini par l'utilisateur

CREATE TYPE dbo.MyUserIDs AS TABLE (UserID INT NOT NULL)

Deuxièmement, utilisez ce type de table dans votre procédure stockée en tant que paramètre :

CREATE PROC proc_GetUsers @UserIDTable MyUserIDs READONLY 
AS
SELECT * FROM dbo.Users
    WHERE userid IN (SELECT UserID FROM @UserIDTable)

Voir les détails ici.

Marc