Voici mon scénario:T-SQL: Looping par un tableau de valeurs connues
Disons que j'ai une procédure stockée dans laquelle je dois appeler une autre procédure stockée sur un ensemble de ids spécifiques; Y a-t-il un moyen de faire cela?
-à-dire au lieu d'avoir besoin de faire ceci:
exec p_MyInnerProcedure 4
exec p_MyInnerProcedure 7
exec p_MyInnerProcedure 12
exec p_MyInnerProcedure 22
exec p_MyInnerProcedure 19
Faire quelque chose comme ceci:
*magic where I specify my list contains 4,7,12,22,19*
DECLARE my_cursor CURSOR FAST_FORWARD FOR
*magic select*
OPEN my_cursor
FETCH NEXT FROM my_cursor INTO @MyId
WHILE @@FETCH_STATUS = 0
BEGIN
exec p_MyInnerProcedure @MyId
FETCH NEXT FROM my_cursor INTO @MyId
END
Mon objectif principal ici est tout simplement maintenabilité (facile à enlever/ajouter id comme les changements d'affaires) , étant capable d'énumérer tous les Id sur une seule ligne ... Les performances ne devraient pas être aussi grandes d'un problème
Quelle version de SQL Server? –
, si vous avez besoin d'itérer sur une liste non-entière comme varchars, solution avec curseur: [itérer-à-une-liste-de-chaînes-dans-sql-server] (https://stackoverflow.com/questions/38388144/itérer-par-une-liste-de-chaînes-dans-sql-server) – Pac0