深入SQL Cursor基本用法的详细介绍
select 1,101,'b' union all
update #Temp2 set username=username +@username where deptid=@deptid
--定义游标
备注:无
DEALLOCATE 游标名称 (删除游标)
declare @id int
id int
select 1,131,'d' union all
@@FETCH_STATUS =0 FETCH 语句成功
select deptid,username from #Temp1
begin
name varchar(50)
fetch next from cursor1 into @id,@name --将游标向下移1行
end
deptid username
declare cursor1 cursor for --定义游标cursor1
由于这个游标 执行一下就相当于SELECT一下 其效率不敢恭维也没做深入研究。
时间: 2006-05
create table #Temp2(deptid int,username varchar(20)) --结果表
while @@fetch_status=0 --判断是否成功获取数据
update table1 set name=name+'1'
insert into #Temp1
--当表#Temp2列deptid存在相同的数据时,就直接在列username上追加@username值
select * from table1
--使用游标的对象(跟据需要填入select文)
fetch next from Select_cursor into @deptid,@username
where id=@id
--进行相应处理(跟据需要填入SQL文)
select 2,302,'c' union all
close Select_cursor
例子:
select 2,221,'e' union all
BEGIN
--
*/
游标一般格式:
declare Select_cursor cursor for
2
c
--先把一些待测试的数据插入到待测试表#Temp1中
begin
@@FETCH_STATUS =-1 FETCH 语句失败或此行不在结果集中
while @@fetch_status=0
--返回被 FETCH 语句执行的最后游标的状态
1
100
a
END
select 2,202,'a' union all
select * from #Temp2 --测试结果
CLOSE 游标名称
要求用一个sql语句输出下面结果
功能:数据库表格tbl_users数据
create table #Temp1(deptid int,userid int,username varchar(20)) --待测试的数据表
fetch next from cursor1 into @id,@name --将游标向下移1行,获取的数据放入之前定义的变量@id,@name中
FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...
deptid userid username
[要求用游标实现设计: OK_008
WHILE @@FETCH_STATUS=0
复制代码 代码如下:
/*/*
select 3,102,'y' union all
if(exists(select * from #Temp2 where deptid=@deptid ))
deallocate Select_cursor
table1结构如下
declare @name varchar(50)
1 101 b
declare @deptid int,@username varchar(20)
select 1,201,'f' union all
OPEN 游标名称
open Select_cursor
--插入新数据
FETCH NEXT FROM 游标名称 INTO 变量名1,变量名2,变量名3,...
select 3,302,'e' union all
复制代码 代码如下:
2 102 cdeallocate cursor1
select 1,100,'a' union all
*/
else
end
SQL语句执行过程... ...
insert into #Temp2 select @deptid,@username
open cursor1 --打开游标
Drop table #Temp1,#Temp2
@@FETCH_STATUS =-2 被提取的行不存在
close cursor1 --关闭游标
select 3,121,'t'
DECLARE 游标名称 CURSOR FOR SELECT 字段1,字段2,字段3,... FROM 表名 WHERE ...
fetch next from Select_cursor into @deptid,@username --提取操作的列数据放到局部变量中
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/sql/mssql/1877.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
SQL基本教程之行转列Pivo
时间:2021-01-20
-
region from hr.Employees union
时间:2021-01-20
-
有时候需要调整用户权限
时间:2021-01-19
-
(但使用 ORDER BY 子句并不
时间:2021-01-19
-
RAND()*10000)insert into Detail
时间:2021-01-19
-
OR 运算符:在两侧的查询
时间:2021-01-19
-
放假之前老大跟我提起了
时间:2021-01-19
-
数据库的运维计策剧本篇
时间:2021-01-19
热门文章
-
4.与聚合函数和 GROUP BY 子句有关的常见错
时间:2021-01-19
-
SQL Server安全(11/11):审核(Auditing)
时间:2021-01-09
-
sqlserver中查询横表变竖表的sql语句简析
时间:2020-12-08
-
SQL Server简单模式下误删除堆表记录恢复方
时间:2020-12-12
-
关于SQL Server查询语句的使用
时间:2020-12-13
-
MSSQL教程_mssql数据库教程_MSSQL基础教程_第
时间:2020-12-13
-
jdbc连接sql server数据库问题分析
时间:2020-12-10
-
详解SQL游标的用法
时间:2020-12-27
-
sql server 关于设置null的一些建议
时间:2020-12-28
-
mssql关于一个表格结构的另外一种显示(表
时间:2020-12-11
