Yes, I have thought about putting the values into a table-variable and this will work just fine. Would it be like this? DDL:DECLARE @myTable table (ID int IDENTITY(1, 1), Field1 int, Field2 int, Field3 int)DECLARE @Counter int, @Field1 int, @Field2 int, @Field3 intINSERT INTO @myTableSELECT 1, 2, 3 UNION ALL SELECT 3, 4, 5 UNION ALLSELECT 6, 7, 8 UNION ALL SELECT 9, 10, 11SET @Counter = 1WHILE (@Counter <= (SELECT MAX(ID) FROM @myTable)) BEGIN SELECT @Field1 = Field1, @Field2 = Field2, @Field3 = Field3 FROM @myTable WHERE ID = @Counter EXEC myProc @Field1, @Field2, @Field3 SET @Counter = @Counter + 1 END