SQL2012中怎样一行一行 的显示出数据而不使用游标?

siaosa 2013-09-23 04:58:28
都说游标的性能差,建议不要用.
那么在SQL2012中怎样一行一行的显示出数据而不使用游标?例如下面的SQL

declare cData cursor for
select fno,fspec from t300km

open cData
declare @fno nvarchar(50)
declare @fspec nvarchar(50)

while @@FETCH_STATUS=0
begin
print @fno+','+@fspec --要做数据处理,这里print是方便测试
fetch next from cData into @fno,@fspec
end
close cData
DEALLOCATE cData

...全文
133 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
siaosa 2013-09-25
  • 打赏
  • 举报
回复
静态游标,使用的时候是游标创建的数据. 表更新不是及时的反映出来
天-笑 2013-09-24
  • 打赏
  • 举报
回复

declare @Rows int,
		@Row int = 1,
		@sPrint nvarchar(100)

declare @t table (
Row			int identity(1,1) not null,
sPrint		nvarchar(100)	  null)
insert into @T
select isnull(fno,'')+','+isnull(fspec,'')     from t300km
set @Rows = @@ROWCOUNT
while(@Row <= @Rows)
begin
	select @sPrint = sprint from @T where row = @Row
	print @sPrint
	set @Row = @Row + 1
end


唐诗三百首 2013-09-24
  • 打赏
  • 举报
回复
用静态游标,不影响性能.

declare cData cursor static for
select fno,fspec from t300km
 
open cData
declare @fno nvarchar(50)
declare @fspec nvarchar(50)
 
while @@FETCH_STATUS=0
begin
  print @fno+','+@fspec     --要做数据处理,这里print是方便测试
  fetch next from cData into @fno,@fspec
end
close cData
DEALLOCATE cData
--小F-- 2013-09-23
  • 打赏
  • 举报
回复
添加一个ID 用循环写。 效率一样底下。
發糞塗牆 2013-09-23
  • 打赏
  • 举报
回复
我想知道你的需求是什么?而不是马上进入技术实现

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧