您的位置:首页 > 数据库

sql server 游标书写实例

2009-11-01 21:43 465 查看
游标的作用很强大,特别在批量处理数据库对象的时候。下面是一个实例:

declare
@id varchar(100),
@zjjgdm varchar(100),
@code varchar(100),
@newid varchar(100)

declare cus_departid cursor for select id,zjjgdm,code from table1 where ID<999 and id='100'

open cus_departid

fetch next from cus_departid into @id,@zjjgdm,@code
while @@FETCH_STATUS = 0
begin
select @newid = ISNULL(RIGHT('000'+CAST(CAST(MAX(id) as int) +1 as varchar(3)),3),'001')
from table1 where ID<999;
update table1 set id=@newid where id=@id and zjjgdm=@zjjgdm and code=@code;
fetch next from cus_departid into @id,@zjjgdm,@code
end

close cus_departid

deallocate cus_departid

说明:

1:@@FETCH_STATUS 是以系统参变量,记录当前活动游标的状态。

2:RIGHT('000'+CAST(CAST(MAX(id) as int) +1 as varchar(3)),3)

它的作用是将表table1的 ID(char(3))字段的最大值转换为 int 型,然后自增 1 ,再转回char(3)类型。类似于标示种子的作用,只不过这里的ID字段是char()类型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: