--游标一共有三种情况,可以用如下语句检查:declare @游标名 sysname
set @游标名='要检查的游名'select case cursor_status('local',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的局部游标'
else '名为 ['+@游标名+'] 的局部游标已经定义' end
,case cursor_status('global',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的全局游标'
else '名为 ['+@游标名+'] 的全局游标已经定义' end
,case cursor_status('variable',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的游标变量'
else '名为 ['+@游标名+'] 的游标变量已经定义' end
set @游标名='要检查的游名'select case cursor_status('local',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的局部游标'
else '名为 ['+@游标名+'] 的局部游标已经定义' end
,case cursor_status('global',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的全局游标'
else '名为 ['+@游标名+'] 的全局游标已经定义' end
,case cursor_status('variable',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的游标变量'
else '名为 ['+@游标名+'] 的游标变量已经定义' end
--要检查的游标名
declare @游标名 sysname
set @游标名='要检查的游名'--检查是否已经定义为局部游标
select case cursor_status('local',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的局部游标'
else '名为 ['+@游标名+'] 的局部游标已经定义' end--检查是否已经定义为全局游标
select case cursor_status('global',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的全局游标'
else '名为 ['+@游标名+'] 的全局游标已经定义' end--检查是否已经定义为游标变量
select case cursor_status('variable',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的游标变量'
else '名为 ['+@游标名+'] 的游标变量已经定义' end
declare 要检查的游名 cursor global
for select 1
--要检查的游标名
declare @游标名 sysname
set @游标名='要检查的游名'--检查是否已经定义为局部游标
select case cursor_status('local',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的局部游标'
else '名为 ['+@游标名+'] 的局部游标已经定义' end--检查是否已经定义为全局游标
select case cursor_status('global',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的全局游标'
else '名为 ['+@游标名+'] 的全局游标已经定义' end--检查是否已经定义为游标变量
select case cursor_status('variable',@游标名)
when -3 then '不存在名为 ['+@游标名+'] 的游标变量'
else '名为 ['+@游标名+'] 的游标变量已经定义' end
--关闭游标
deallocate 要检查的游名/*--测试结果:-----------------------------------------
不存在名为 [要检查的游名] 的局部游标(所影响的行数为 1 行)
-----------------------------------------
名为 [要检查的游名] 的全局游标已经定义(所影响的行数为 1 行)
------------------------------------------
不存在名为 [要检查的游名] 的游标变量(所影响的行数为 1 行)--*/