2012-04-05 17 views
25

Come eseguire il ciclo attraverso l'elenco separato da virgola in SQL? Ho una lista di ID e ho bisogno di passare questi ID a una stored procedure. NON POSSO modificare la procedura memorizzata. Devo capire come eseguire l'SP per ogni id. Dammi alcune idee, posso andare avanti da lì.Elenco separato da virgola in SQL

Grazie.

+2

Vuoi chiamare la stored procedure per ogni ID separatamente? Che lingua stai lavorando al di fuori di SQL? – n8wrl

+0

Se non è possibile modificare lo stato memorizzato, perché non chiamarlo più volte? – Soader03

+1

Quale versione di SQL Server? – Yuck

risposta

62
declare @S varchar(20) 
set @S = '1,2,3,4,5' 

while len(@S) > 0 
begin 
    --print left(@S, charindex(',', @S+',')-1) 
    exec YourSP left(@S, charindex(',', @S+',')-1) 
    set @S = stuff(@S, 1, charindex(',', @S+','), '') 
end 

provare su SE Scheda: Walk the string

+0

Questo è veloce! grazie! – Virus

+1

+1 per il collegamento. Aggiunto ai segnalibri :) –

+1

+1 per il collegamento. Molto bello – brian

Problemi correlati