2012-04-05 6 views
25

SQL에서 쉼표로 구분 된 목록을 반복하는 방법은 무엇입니까? ID 목록이 있는데 이러한 ID를 저장 프로 시저에 전달해야합니다. 저장 프로 시저를 변경할 수 없습니다. 각 ID마다 SP를 실행하는 방법을 알아야합니다. 나에게 몇 가지 아이디어를 줘, 내가 거기에서 계속할 수있어.SQL의 쉼표로 구분 된 목록

감사합니다. SE 데이터에

+2

당신이 별도로 각 ID에 대한 저장 프로 시저를 호출 하시겠습니까? SQL 외부에서 어떤 언어로 작업하고 있습니까? – n8wrl

+0

저장 한 내용을 변경할 수 없으면 여러 번 호출하는 것이 좋습니다. – Soader03

+1

어떤 버전의 SQL Server입니까? – Yuck

답변

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 

시도 : Walk the string

+0

그것은 빠릅니다! 고맙습니다! 링크의 경우 – Virus

+1

+1. 북마크 됨 :) –

+1

+1. 매우 차가운 – brian