简单问题,如何循环表?

insert2003 2005-09-26 10:47:05
如何一条记录一条记录的去读完整个表

就是游标的功能
但不能用游标去做

用while?怎么写代码?
下面是游标代码:

DECLARE Scheme_cursor CURSOR FOR
SELECT c_Local_Type,c_Long_Type,i_Time
FROM tb_list
ORDER BY dt_Call_Date

Open Scheme_cursor

FETCH NEXT FROM Scheme_cursor
INTO @cLocalT,@cIPType,@iTime

WHILE @@FETCH_STATUS = 0
BEGIN

/*
处理语句
*/

FETCH NEXT FROM Scheme_cursor
INTO @cLocalT,@cIPType,@iTime

END
CLOSE Scheme_cursor
DEALLOCATE Scheme_cursor

即如何用while来代替游标?
...全文
340 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
WangZWang 2005-09-26
  • 打赏
  • 举报
回复
没有这种处理方法,如果考虑不能用批处理的方法,
那只能用Cursor较为合适.
vivianfdlpw 2005-09-26
  • 打赏
  • 举报
回复
declare @tb table
(
ID int identity,
c_Local_Type varchar(20),
c_Long_Type varchar(20),
i_Time datetime
)
insert @tb(c_Local_Type,c_Long_Type,i_Time)
SELECT c_Local_Type,c_Long_Type,i_Time
FROM tb_list
ORDER BY dt_Call_Date

declare @i int
set @i=1

while @i<=(select max(ID) from @tb)
begin
/*
处理语句
*/

set @i=@i+1
end

insert2003 2005-09-26
  • 打赏
  • 举报
回复
楼上的还要插入ID

我就是要加快速度才不用游标的,如果再插入ID,又要花时间,还不如用游标,而且没这么麻烦


有没有什么

not eof

next

类似功能的语句?
xikboy 2005-09-26
  • 打赏
  • 举报
回复
select name,id=identity(int,1,1) into xx from sysobjects where name 。。。。。
然后用while与id去循还
insert2003 2005-09-26
  • 打赏
  • 举报
回复
我要根据 c_Local_Type,c_Long_Type 分开来处理 i_Time 这个时间。
不会是分组的那种!

就是要按 dt_Call_Date 排序

根据 c_Local_Type,c_Long_Type 分开来处理 i_Time(这个时间只能一条条的处理)

从第一条记录一直处理到最后一条记录
churchatp1 2005-09-26
  • 打赏
  • 举报
回复
declare @s
select @s=@s+','+你的字符型字段 from 你的表
WangZWang 2005-09-26
  • 打赏
  • 举报
回复
先说明你要实现什么功能?

34,594

社区成员

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

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