游标可以很好的解决麻烦的循环问题,但最大缺点就是执行效率低下,特别大数据量。网上发现很多代替游标的方法,感觉这个比较好用拿来备用 DECLARE @r int; DECLARE @number int; DECLARE @tb1 table (numb int,tid int) insert into @tb1(numb,tid ) SELECT ROW_NUMBER() OVER (ORDER BY userid ) AS number,tid FROM TableName ;--关键 SELECT @number = MAX(numb) FROM @tb1; SET @r=1 WHILE (@r <= @number) BEGIN ---sql 语句 select numb from @tb1 where numb = @r; SET @r=@r+1 END