Parcourir toutes les lignes d'une table temporaire et appeler une procédure stockée pour chaque ligne

J'ai déclaré une table temporaire pour contenir toutes les valeurs nécessaires, comme suit:

    DECLARE @temp TABLE
    (
    Password int,
    IdTran int,
    Kind varchar(16)
    )

INSERT INTO @temp
SELECT  s.Password, s.IdTran, 'test'
from signal s inner join vefify v 
    on s.Password = v.Password 
and s.IdTran = v.IdTran 
and v.type = 'DEV' 
where s.[Type] = 'start' 
AND NOT EXISTS (SELECT * FROM signal s2
            WHERE s.Password = s2.Password 
            and s.IdTran = s2.IdTran 
            and s2.[Type] = 'progress' )

INSERT INTO @temp
SELECT  s.Password, s.IdTran, 'test'
from signal s inner join vefify v 
    on s.Password = v.Password 
and s.IdTran = v.IdTran 
and v.type = 'PROD' 
where s.[Type] = 'progress' 
AND NOT EXISTS (SELECT * FROM signal s2
            WHERE s.Password = s2.Password 
            and s.IdTran = s2.IdTran 
            and s2.[Type] = 'finish' )

Maintenant, j'ai besoin d'une boucle sur les lignes de la @temp de table et de et pour chaque ligne d'appel d'un sp qui prend tous les paramètres de @temp table en entrée.
Comment puis-je y parvenir?

  • Est-ce que votre proc retourner plusieurs ou une seule ligne pour chaque valeur de @table temp. si proc retourne une seule ligne/valeur je condider réécriture présent à l'appel de la fonction. De cette façon, vous pouvez exécuter pour chaque valeur de la table sans cursors = CURSES ou LOOPS. SQL est destinée à faire définir le traitement à base de pas de boucles. La plupart des gens dans la communauté permettra d'éviter tout ce qui est avec cursors c'est vraiment un curse
InformationsquelleAutor merazuu | 2014-03-24