代替游标循环的方法

游标可以很好的解决麻烦的循环问题,但最大缺点就是执行效率低下,特别大数据量。网上发现很多代替游标的方法,感觉这个比较好用拿来备用

 

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

 

posted @ 2009-01-14 12:58  卒子  阅读(647)  评论(0编辑  收藏  举报