一:什么是游标
游标是可以在结果集中上下游动的指针
二:创建一个简单的游标
Code
三:游标的作用域
做个存储过程,
里面的游标是全局的,
存储过程内部没有关闭释放游标
代码如下
代码如下
Code
接着执行这个存储过程
执行语句如下
执行语句如下
use
xland
go
exec spcursorscope
go
exec spcursorscope
执行结果
1 2 测试看看 xland
2 4 asdfasdf xland
3 5 asdfasdf xland
4 6 全文索引全文索引全文索引xland的全文索引 xland
再看一种执行方式
1 2 测试看看 xland
2 4 asdfasdf xland
3 5 asdfasdf xland
4 6 全文索引全文索引全文索引xland的全文索引 xland
6 7 xland xland
7 8 可以吗 xland
8 9 应该没问题 xland
9 10 暗暗 xland
我们在存储过程的外部调用了游标
说明游标是全局的
但不建议这样使用游标
1 2 测试看看 xland
2 4 asdfasdf xland
3 5 asdfasdf xland
4 6 全文索引全文索引全文索引xland的全文索引 xland
再看一种执行方式
Code
看执行结果
1 2 测试看看 xland
2 4 asdfasdf xland
3 5 asdfasdf xland
4 6 全文索引全文索引全文索引xland的全文索引 xland
6 7 xland xland
7 8 可以吗 xland
8 9 应该没问题 xland
9 10 暗暗 xland
我们在存储过程的外部调用了游标
说明游标是全局的
但不建议这样使用游标
四:游标的滚动
next --移动到下一条记录
prior --移动到上一条记录
first --移动到第一条记录
last --移动到最后一条记录
看例子
static的游标,程序员都知道static的意思,我就不多说了
next --移动到下一条记录
prior --移动到上一条记录
first --移动到第一条记录
last --移动到最后一条记录
看例子
Code
五:静态游标
static的游标,程序员都知道static的意思,我就不多说了
先看例子
(3 行受影响)
2 测试看看
4 asdfasdf
5 asdfasdf
title1
Code
返回的消息:
(3 行受影响)
2 测试看看
4 asdfasdf
5 asdfasdf
title1
(1 行受影响)
(3 行受影响)
2 测试看看
4 asdfasdf
5 asdfasdf
2 测试看看
4 asdfasdf
5 asdfasdf
其中一行受影响就是
select 语句的执行结果,为
2 测试看看
4 这是我更新的数据
5 asdfasdf
静态游标:一旦创建就与实体记录分开了,并不维持任何锁
实体表发生了更新,并不影响游标里的情况
六:键驱动的游标
看例子
得到的消息
(8 行受影响)
2 测试看看
4 这是我更新的数据
5 asdfasdf
6 全文索引全文索引全文索引xland的全文索引
7 xland
8 可以吗
9 应该没问题
10 暗暗
2 测试看看
4 这是我更新的数据
5 asdfasdf
静态游标:一旦创建就与实体记录分开了,并不维持任何锁
实体表发生了更新,并不影响游标里的情况
六:键驱动的游标
看例子
Code
得到的消息
(8 行受影响)
2 测试看看
4 这是我更新的数据
5 asdfasdf
6 全文索引全文索引全文索引xland的全文索引
7 xland
8 可以吗
9 应该没问题
10 暗暗
(1 行受影响)
(1 行受影响)
(1 行受影响)
(8 行受影响)
delete
4 这不是我更新的数据
5 asdfasdf
6 全文索引全文索引全文索引xland的全文索引
7 xland
8 可以吗
9 应该没问题
10 暗暗
delete
4 这不是我更新的数据
5 asdfasdf
6 全文索引全文索引全文索引xland的全文索引
7 xland
8 可以吗
9 应该没问题
10 暗暗
得到的结果
4 这不是我更新的数据
5 asdfasdf
6 全文索引全文索引全文索引xland的全文索引
7 xland
8 可以吗
9 应该没问题
10 暗暗
33 这是插入的
如果把keyset改成dynamic
删除的记录没有通知
消息里显示出了
插入的记录和更新的记录
可以在游标滚动的时候修改表的记录
4 这不是我更新的数据
5 asdfasdf
6 全文索引全文索引全文索引xland的全文索引
7 xland
8 可以吗
9 应该没问题
10 暗暗
33 这是插入的
如果把keyset改成dynamic
删除的记录没有通知
消息里显示出了
插入的记录和更新的记录
可以在游标滚动的时候修改表的记录