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()类型。
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()类型。
相关文章推荐
- SQL Server 游标语句 声明/打开/循环实例
- SQL Server 游标语句 声明/打开/循环实例
- SQL Server 2008 游标使用实例
- SQL SERVER 参考: 游标(Cursor)的讲解与实例
- SQL Server游标实例演示不得不看
- Sql Server 游标概念与实例
- SQL Server游标应用实例
- SQL Server 游标实例
- SQL Server游标应用实例
- SQL Server 2008 游标使用实例
- sql 游标、sql server 游标使用、实例
- [SQL SERVER系列]存储过程,游标和触发器实例[原创]
- 详解什么是SQL Server中的游标及相关实例
- SQL Server 游标使用实例
- SQL Server 游标语句 声明/打开/循环实例
- SQL SERVER 参考: 游标(Cursor)的讲解与实例
- SQL Server 2008 游标使用实例
- SQL Server 游标语句 声明/打开/循环实例
- SQL Server游标的使用详细实例步骤
- [SQL SERVER系列]存储过程,游标和触发器实例[原创]