sql不使用游标遍历表数据

create table nametable(
nameguid uniqueidentifier,
name nvarchar(10)
)
insert into nametable(nameguid,name) values(newid(),lide)
insert into nametable(nameguid,name) values(newid(),lideqiang)
insert into nametable(nameguid,name) values(newid(),liqiang)

set rowcount 1
select * from nametable

set rowcount的作用是使 SQL Server在返回指定的行数之后停止处理查询。

输出结果:

技术分享  

实现表遍历:

declare @nameguid uniqueidentifier

declare @name nvarchar(10)

while exists (select * from nametable)

begin

set rowcount 1

select @nameguid = nameguid from nametable

select @name = name from nametable where nameguid = @nameguid

set rowcount 0

delete from nametable where nameguid = @nameguid

print @name

end

不过这样操作会删除表中的数据,可以在临时表中操作

select * into #nametable from nametable

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。