不用游标也能遍历记录的sql语句实例

--声明变量表@tb
declare @tb table(id int,name varchar(50))


--添加测试数据
insert into @tb
select  6,'aa' union all
select  7,'bb' union all
select  8,'cc' union all
select  9,'dd' union all
select  10,'abc' union all
select  11,'ddef' union all
select  12,'fda' union all
select  13,'rewr' union all
select  14,'eyt' union all
select  15,'jjy' union all
select  16,'bbbxd' union all
select  17,'xxx' union all
select  18,'ffff' union all
select  19,'wwwwwwww' union all
select  20,'aaaaaaaaaa' 


/*
查看表中数据
select * from @tb 
*/


--声明循环用的“指针”
declare @min varchar(5)
--赋初值
select  @min=min(id) from @tb  
--开始循环
while @min is not null
begin
  print @min  --打印当前“指针”的值
  select  @min=min(id) from @tb where id>@min  --更新“指针”内容,使之移到下一记录

end

----------------------------------------------------------------------------------------------

declare @temp table   
(   
   [id] int IDENTITY(1,1),   
   [Name] varchar(10)   
)   
declare @tempId int,@tempName varchar(10)   
 
insert into @temp values('a')   
insert into @temp values('b')   
insert into @temp values('c')   
insert into @temp values('d')   
insert into @temp values('e')   
 
--select * from @temp   
 
WHILE EXISTS(select [id] from @temp)   
begin   
SET ROWCOUNT 1    
select @tempId = [id],@tempName=[Name] from @temp   
SET ROWCOUNT 0   
delete from @temp where [id] = @tempId   
 
print 'Name:----'+@tempName   
end  

---

--定义表变量

DECLARE @temp TABLE

    (

      [id] INT IDENTITY(1, 1) ,

      [Name] VARCHAR(10)

    )  

DECLARE @tempId INT ,

    @tempName VARCHAR(10)  

DECLARE test_Cursor CURSOR LOCAL FOR

SELECT   [id],[name] FROM @temp

--插入数据值

INSERT  INTO @temp

VALUES  ( 'a' )  

INSERT  INTO @temp

VALUES  ( 'b' )  

INSERT  INTO @temp

VALUES  ( 'c' )  

INSERT  INTO @temp

VALUES  ( 'd' )  

INSERT  INTO @temp

VALUES  ( 'e' )  

 

--打开游标

OPEN test_Cursor

WHILE @@FETCH_STATUS = 0

    BEGIN  

        FETCH NEXT FROM test_Cursor INTO @tempId,@tempname

        PRINT 'Name:----' + @tempName  

    END 

CLOSE test_Cursor

DEALLOCATE test_Cursor

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值