alterfunction dbo.ufn_ConvertToIntList ( @datavarchar(7990) ) returns@tableTable(c intnotnull) as begin declare@strvarchar(8000),@itervarchar(50) ,@beginPosint, @endPosint select@str=@data+',', @beginPos=1, @endPos=charindex(',', @str, @beginPos) while(@endPos>0) begin set@iter=SubString(@str,@beginPos ,@endPos-@beginPos ) if(@iter<>'') begin insertinto@table(c) values(Convert(int,@iter)) end select@beginPos=@endPos+1, @endPos=charindex(',', @str, @beginPos) end return end go declare@datavarchar(8000) ,@iint select@i=1, @data='1,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9,2,3,4,5,6,7,8,9' while(@i<20) begin select*from dbo.ufn_ConvertToIntList(@data) set@i=@i+1 end