如何在SQL中通过逗号分隔的列表循环?我有一个ID列表,我需要将这些ID传递给存储过程。我无法更改存储过程。我需要弄清楚如何为每个ID执行SP。给我一些想法,我可以从那里继续。

谢谢。

最佳答案

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

10-04 19:29