DECLARE @Item VARCHAR(128), @pos INT, @STR varchar(max), @separator VARCHAR(16) set @separator = ',' SET @STR = '873,904,1563,2188,2526' WHILE DATALENGTH(@STR) > 0 BEGIN SET @pos = CHARINDEX(@separator, @STR) IF @pos = 0 SET @pos = DATALENGTH(@STR)+1 SET @Item = LEFT(@STR, @pos -1 ) SET @STR = SUBSTRING(@STR, @pos + DATALENGTH(@separator), 8000) Print 'Executing SP for ' + @Item did my code ENDbut thanks a lot for the alternative solution.
> >DECLARE @Test TABLE (PersonId int /*or whatever*/, ID Int IDENTITY(1,1)) >INSERT INTO @Test (PersonId) VALUES (??) >INSERT INTO @Test (PersonId) VALUES (??) >INSERT INTO @Test (PersonId) VALUES (??) >INSERT INTO @Test (PersonId) VALUES (??) >INSERT INTO @Test (PersonId) VALUES (??) >INSERT INTO @Test (PersonId) VALUES (??) > >DECLARE @PersonId int -- or whatever >DECLARE @id_min int >DECLARE @id_max int >SET @id_min = 1 >SELECT @id_max = MIN(Id) FROM @Test > >WHILE @id_min <= @id_max > BEGIN > SELECT @PersonId = PersonId FROM @Test WHERE Id = @id_min > --- Test your SP here > SET @id_min = @id_min + 1 > END >