sqlserver中怎样使用游标for循环

作者&投稿:仍蓓 (若有异议请与网页底部的电邮联系)
在sqlServer中怎么用游标遍历表~

定义变量
定义游标查你的表
打开游标
取游标到变量Fecth Next
循环取游标数据到变量Fecth Next
begin
这里就是在遍历啦
end
关闭游标
销毁游标

  在数据库中,游标是一个十分重要的概念。游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 查询语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。
  我们知道关系数据库管理系统实质是面向集合的,在MS SQL SERVER 中并没有一种描述表中单一记录的表达形式,除非使用where 子句来限制只有一条记录被选中。因此我们必须借助于游标来进行面向单条记录的数据处理。由此可见,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作;它还提供对基于游标位置而对表中数据进行删除或更新的能力;而且,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。
以下实例用的是在存储过程中遍历结果和查询数据库中所有 存储过程名称 加以处理以文本形式输出:
create procedure findName--创建一个名为findName的存储过程 AS declare @result VARCHAR(30)--用来处理结果的变量 begin --声明一个游标 Declare curStudentFee Cursor for SELECT NAME FROM SYSOBJECTS WHERE XTYPE='P';---查询语句(查询所有用户存储过程名称) --打开游标 Open curStudentFee --循环并提取记录 Fetch Next From curStudentFee Into @result--取第一条记录存入@result中 While ( @@Fetch_Status=0 ) begin print ''''+@result+''''+',';---处理结果 Fetch Next From curStudentFee into @result----下一条 end --关闭游标 Close curStudentFee --释放游标 Deallocate curStudentFee end

给你举个例子

 

利用游标循环更新、删除MemberAccount表中的数据

DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor ; --读取第一行数据
WHILE @@FETCH_STATUS = 0
  BEGIN
  --UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --更新
 --DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --删除
 FETCH NEXT FROM My_Cursor; --读取下一行数据
 END
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标
GO


给你举个例子

利用游标循环更新、删除MemberAccount表中的数据DECLARE My_Cursor CURSOR --定义游标FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中OPEN My_Cursor; --打开游标FETCH NEXT FROM My_Cursor ; --读取第一行数据WHILE @@FETCH_STATUS = 0 BEGIN --UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_Cursor; --更新 --DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_Cursor; --删除 FETCH NEXT FROM My_Cursor; --读取下一行数据 ENDCLOSE My_Cursor; --关闭游标DEALLOCATE My_Cursor; --释放游标GO

sqlserver配置管理器怎样使用?
答:如果你需要找到SQL Server配置管理器,可以按照以下步骤进行:首先,点击“开始”菜单,然后在搜索框中输入“SQL Server配置管理器”。当你看到搜索结果列表中的SQL Server配置管理器时,你可以点击它来打开配置管理器。一旦你打开了SQL Server配置管理器,你将会看到它列出了所有可用的SQL Server组件和服务。

sqlserver如何执行.sqlsqlserver如何执行sql脚本
答:4.点击【保存到文件怎么在sqlserver中执行脚本?1.启动SQLServerManagementStudio;点击【开始】->【所有程序】->【MicrosoftSQLServer2008R2】->【SQLServerManagementStudio】,服务器名称:服务器的名称或者IP地址,登录名和密码:通常都为sa;点击【连接】后登录SQLServerManagementStudio;2.点击【文件】->...

怎样使用SQL SERVER新建立一个数据库
答:Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。2、在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点 3、右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。4、执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、...

SQL server怎样使用ALTER 语句修改字段名
答:1、新建一个表:student,用做示例,如图所示。2、首先修改字段名称,使用sql语句:“execute sp_rename '表名.字段名','新字段名'”,如图所示。例子修改:execute sp_rename 'student.name','nameNew'3、然后是修改类型,使用sql语句:“alter table‘表名’ alter column‘字段名称 类型’not nul...

如何在SQL Server中使用正则表达式
答:如何在SQL Server中使用正则表达式 sqlserver中,主要有regexp_like,regexp_replace,regexp_substr,regexp_instr四个正则表达式函数。1、regexp_like:regexp_like(x,pattern[,match_option]),查看x是否与pattern相匹配,该函数还可以提供一个可选的参数match_option字符串说明默认的匹配选项。match_option...

怎样在SQLServer中正确使用参数报表
答:此时数据库管理员可以使用可用值列表的方式来规范化参数的输入,限制其输入一些特殊的字符。也就是说,在定义String类型的参数报表时,让系统向用户显示一个下拉的列表框,然后用户通过选择来指定参数。这个操作就跟Excel表格中的下拉列框差不多,用户只能够选择数据库管理员所提供的值,或者说只能够选择某...

sqlserver中where语句怎么使用
答:SQL WHERE 语法 实例 下面的 SQL 语句从 “Websites” 表中选取国家为 “CN” 的所有网站:注意:SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。在上个实例中 ‘CN’ 文本字段使用了单引号。如果是数值字段,请不要使用引号。例如:-from shulanxt ...

怎样使用SQL SERVER新建立一个数据库
答:方法/步骤 1 首先我们打开SQL SERVER自带的数据库管理工具,从开始菜单中可以找到,如图点击进去;2 开始连接SQL SERVER服务器,就是我们装好的SQL SERVER 服务器;3 如图,右击数据库,选择第一个,新建一个数据库;4 填写数据库的名称(箭头方向),下面是设置自动增长的,一般不用管,默认 5 点击...

怎样使用SQL SERVER新建立一个数据库
答:filename='D:\stuDB_log.ldf', size=2mb, filegrowth=1mb)go 2.使用SQL Server Management Studio新建数据库 2.1. 登录SQL Server Management Studio 2.2 右击左侧菜单栏中的数据库项 2.3 在出现的右键菜单上以鼠标左键点击新建数据库 2.4 在出现的窗口中输入数据库名称并选择文件位置 ...

我想在SQL server中使用自增序列,怎么使用
答:1、SQL Server 可以在表中直接设定某个字段为自增序列字段,来得比ORACLE容易得多,具体操作参看下图:(当然,也可以使用建表语句或修改表的语句来实现。)相关知识点延伸:1、MS SQL 没有特定的 dual 表,也没有系统级的sequence。2、Sequence是数据库系统的特性,有的数据库实现了Sequence,有的则...