MS SQL Server 2000 游标的使用方法
2011-12-30 12:30
676 查看
*********************************************************************************
********************* 游标的使用方法 *****************************
**************** ***********************
**************** 整理BY--苏贵阳 2010年7月28日 ***********************
*********************************************************************************
一、游标的作用:
Transact-SQL 游标主要用在存储过程、触发器和 Transact-SQL 脚本中,它们使结果集的内容对其它 Transact-SQL 语句同样可用。
二、游标的使用过程:
1.声明游标变量包含游标返回的数据。
2.使用declare cursor 语句把游标与一个select 语句相关联。
如: declare CKMX_cursor cursor for
select CKMX_WLBH,CKMX_SL,CKMX_DJ,CKMX_BZ from #CKMX
3.使用open语句执行select语句生成游标。
如: open CKMX_cursor
4.使用fetch into 语句提取单行,并把每列中的数据转移到指定的变量中。然后,其他SQL语句可以引用这些变量来访问已提取的数据值。
如:fetch from CKMX_cursor into @CKMX_WLBH,@CKMX_SL,@CKMX_DJ,@CKMX_BZ
要先定义使用到的变量:
declare @CKMX_WLBH varchar(20)--存放从临时表中查询出来的物料代码
declare @CKMX_SL float --存放从临时表中查询出来的物料数量
declare @CKMX_DJ float --存放从临时表中查询出来的物料单价
declare @CKMX_BZ varchar(50) --存放从临时表中查询出来的物料备注
5.利用while循环来遍历游标中的内容
例一:
while @@fetch_status=0
begin
……
可以使用已经赋值了的变量: @CKMX_WLBH,@CKMX_SL,@CKMX_DJ,@CKMX_BZ
fetch from CKMX_cursor into @CKMX_WLBH,@CKMX_SL,@CKMX_DJ,@CKMX_BZ --如果没有此句,会导致死循环。
……
end
@@fetch_status 返回 fetch 语句执行的最后游标状态,而不是任何当前被打开的游标的状态。
返回值:0:fetch语句执行成功; -1:fetch语句执行失败,或者此行不在结果集中。
例二:
declare employee_cursor cursor for
select lastname, firstname from northwind.dbo.employees
open employee_cursor
fetch next from employee_cursor
while @@fetch_status = 0
begin
fetch next from employee_cursor
end
close employee_cursor
deallocate employee_cursor
6.结束游标:
关闭当前使用的游标: close CKMX_cursor
处于关闭状态的游标,如果重新发出一个open 语句,则该游标结构仍可用于处理。
完全释放游标资源: deallocate CKMX_cursor
7.其他
MS SQL SERVER 2000中支持 cursor 数据类型的变量。
定义并关联游标变量
方法一:
declare @myvariable cursor -- 定义游标变量
declare mycursor cursor for -- 定义游标
select lastname from northwind.dbo.employees
set @myvariable = mycursor -- 关联游标
方法二:
set @myvariable = cursor scroll keyset for
select lastname from northwind.dbo.employees
本文出自 “迷茫后的短暂停留” 博客,请务必保留此出处/article/4317710.html
********************* 游标的使用方法 *****************************
**************** ***********************
**************** 整理BY--苏贵阳 2010年7月28日 ***********************
*********************************************************************************
一、游标的作用:
Transact-SQL 游标主要用在存储过程、触发器和 Transact-SQL 脚本中,它们使结果集的内容对其它 Transact-SQL 语句同样可用。
二、游标的使用过程:
1.声明游标变量包含游标返回的数据。
2.使用declare cursor 语句把游标与一个select 语句相关联。
如: declare CKMX_cursor cursor for
select CKMX_WLBH,CKMX_SL,CKMX_DJ,CKMX_BZ from #CKMX
3.使用open语句执行select语句生成游标。
如: open CKMX_cursor
4.使用fetch into 语句提取单行,并把每列中的数据转移到指定的变量中。然后,其他SQL语句可以引用这些变量来访问已提取的数据值。
如:fetch from CKMX_cursor into @CKMX_WLBH,@CKMX_SL,@CKMX_DJ,@CKMX_BZ
要先定义使用到的变量:
declare @CKMX_WLBH varchar(20)--存放从临时表中查询出来的物料代码
declare @CKMX_SL float --存放从临时表中查询出来的物料数量
declare @CKMX_DJ float --存放从临时表中查询出来的物料单价
declare @CKMX_BZ varchar(50) --存放从临时表中查询出来的物料备注
5.利用while循环来遍历游标中的内容
例一:
while @@fetch_status=0
begin
……
可以使用已经赋值了的变量: @CKMX_WLBH,@CKMX_SL,@CKMX_DJ,@CKMX_BZ
fetch from CKMX_cursor into @CKMX_WLBH,@CKMX_SL,@CKMX_DJ,@CKMX_BZ --如果没有此句,会导致死循环。
……
end
@@fetch_status 返回 fetch 语句执行的最后游标状态,而不是任何当前被打开的游标的状态。
返回值:0:fetch语句执行成功; -1:fetch语句执行失败,或者此行不在结果集中。
例二:
declare employee_cursor cursor for
select lastname, firstname from northwind.dbo.employees
open employee_cursor
fetch next from employee_cursor
while @@fetch_status = 0
begin
fetch next from employee_cursor
end
close employee_cursor
deallocate employee_cursor
6.结束游标:
关闭当前使用的游标: close CKMX_cursor
处于关闭状态的游标,如果重新发出一个open 语句,则该游标结构仍可用于处理。
完全释放游标资源: deallocate CKMX_cursor
7.其他
MS SQL SERVER 2000中支持 cursor 数据类型的变量。
定义并关联游标变量
方法一:
declare @myvariable cursor -- 定义游标变量
declare mycursor cursor for -- 定义游标
select lastname from northwind.dbo.employees
set @myvariable = mycursor -- 关联游标
方法二:
set @myvariable = cursor scroll keyset for
select lastname from northwind.dbo.employees
本文出自 “迷茫后的短暂停留” 博客,请务必保留此出处/article/4317710.html
相关文章推荐
- MS SQL Server 2000 游标的使用方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- Delphi使用BDE连接远程MS SQL SERVER 2000数据库时出现“Db-library network communciations layer not loaded.”错误的解决方法
- 在Ubuntu 10.04中文版下Qt编程,使用unixODBC和FreeTDS连接MS SQL Server 2005,并且中文不出现乱码的方法
- 《MS SQL Server 2000管理员手册》系列——15. 使用Transact-SQL和Enterprise Manager管理数据表
- 在Ubuntu 10.04中文版下Qt编程,使用unixODBC和FreeTDS连接MS SQL Server 2005,并且中文不出现乱码的方法
- ms Sql server 中的getDate()函数使用方法总结
- 海洋工作室——网站建设专家:MS Sql Server临时表和游标的使用小总结【转】
- 如何在rails中正确使用MS Sql Server 2000做为数据库服务器(zz)
- 转摘--MS SQL Server 2000 数据库使用备份还原造成的孤立用户和对象名‘xxx’无效的错误的解决办法
- Microsoft SQL Server 2000 Driver for JDBC在MyEclipse中的使用方法
- 使用第三方JDBC驱动JTDS代替MS SQL Server 2000驱动
- 《MS SQL Server 2000管理员手册》系列——14. 使用 T-SQL 检索数据
- Ms SQLServer中的Union和Union All的使用方法和区别
- 如何在rails中正确使用MS Sql Server 2000做为数据库服务器
- 《MS SQL Server 2000管理员手册》系列——35. 使用SQL Query Analyzer和SQL Profiler
- MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
- 《MS SQL Server 2000管理员手册》系列——22. 建立及使用触发程序