2012-04-05 171 views
25

如何通過SQL中的逗號分隔列表循環?我有一個ID列表,我需要將這些ID傳遞給存儲過程。我無法改變存儲過程。我需要弄清楚如何爲每個ID執行SP。給我一些想法,我可以從那裏繼續。SQL中的逗號分隔列表

謝謝。

+2

你想呼籲每個ID seperately存儲過程?你在SQL以外使用哪種語言? – n8wrl 2012-04-05 15:40:13

+0

如果你不能改變存儲,爲什麼不多次調用它? – Soader03 2012-04-05 15:40:45

+1

什麼版本的SQL Server? – Yuck 2012-04-05 15:41:03

回答

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 

嘗試在SE數據:Walk the string

+0

這很快!謝謝! – Virus 2012-04-05 15:52:10

+1

+1鏈接。已收藏:) – 2012-04-05 15:52:45

+1

+1鏈接。非常酷 – brian 2012-04-05 17:44:10