当前位置:首页 » 编程语言 » sql游标不存在怎么办
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql游标不存在怎么办

发布时间: 2022-02-27 12:49:06

sql server 新建查询创建游标后,为什么再次新建查询打开游标,提示名为 'x' 的游标不存在

游标的作用域最高为连接级:在同一个连接上,可以共用游标,连接断开,游标清除。
如果建立游标时指定【local】关键字,则在定义它的代码段(或过程/函数/触发器)执行完后释放。
在SSMS中,每一个查询窗口,都是独立的连接,所以不能共用同一个游标。

Ⅱ sql server中如何判断游标是否存在

--测试
DECLARE @SNAME VARCHAR(20)
DECLARE DD CURSOR FOR SELECT SNAME FROM S
OPEN DD
--楼上说的对.你要的是判断游标是否存在
select * from MASTER.dbo.syscursors where cursor_name='DD'
--以下操作为判断游标是否存在的同时检测游标状态。
SELECT (CASE WHEN CURSOR_STATUS('global','DD')=1 THEN '游标的结果集至少有一行'
WHEN CURSOR_STATUS('global','DD')=0 THEN '游标的结果集为空'
WHEN CURSOR_STATUS('global','DD')=-1 THEN '游标被关闭'
WHEN CURSOR_STATUS('global','DD')=-2 THEN '游标不适用'
WHEN CURSOR_STATUS('global','DD')=-3 THEN '游标不存在' END) AS RESULT
/*返回结果:
1
游标的结果集至少有一行。

对于不区分的游标和键集游标,结果集至少有一行。

对于动态游标,结果集可以有零行、一行或多行。
分配给该变量的游标已打开。

对于不区分的游标和键集游标,结果集至少有一行。

对于动态游标,结果集可以有零行、一行或多行。

0
游标的结果集为空。*
分配给该变量的游标已经打开,然而结果集肯定为空。*

-1
游标被关闭。
分配给该变量的游标被关闭。

-2
不适用。
可以是:

先前调用的过程并没有将游标分配给 OUTPUT 变量。

先前调用的过程为 OUTPUT 变量分配了游标,然而在过程结束时,游标处于关闭状态。因此,游标被释放,并且没有返回调用过程。

没有将游标分配给已声明的游标变量。

-3
具有指定名称的游标不存在。
具有指定名称的游标变量并不存在,或者即使存在这样一个游标变量,但并没有给它分配游标。

Ⅲ SQL SERVER 2008 打开游标不存在

是的,不能去掉declare@curcursor这是定以一个游标,跟定义变量一样,他是要与表和函数区分的

Ⅳ 执行存储过程显示 游标不存在


close kecheng_cousor
deallocate kechang_cousor
移到循环外

create procere add_record @sno char(9)
as
declare @total_num int,@cno char(4)
SET NOCOUNT on;

select @total_num= COUNT(*) from Student where Sno=@sno
if @total_num=0
begin
print'该学生不存在!'
return
end
else
begin
declare kecheng_cursor CURSOR FOR select cno from course
open kecheng_cousor
fetch next from kecheng_cursor into @cno
while @@FETCH_STATUS=0
begin
select @total_num=COUNT(*) from SC where Sno=@sno and Cno=@cno
if @total_num>0
begin
FETCH NEXT FROM kecheng_cousor into @cno
continue
end
else
begin
insert into SC(Sno,cno,grade)values(@sno,@cno,100*RAND())
fetch next from kecheng_cousor into @cno
end
end

close kecheng_cousor
deallocate kechang_cousor
end

Ⅳ SQL创建了标量函数但显示不存在,如何解决

使用修改部分打开的自定义函数,说明函数创建成功。
至于加红色的波浪线,可以不用理会,工具显示的问题,不是错误。
关闭后再打开就好了,就当做微软工具的小小bug啦

Ⅵ 存储过程,打开游标报错,表或视图不存在。 但是视图是存在的,直接将定义游标的sql拿出来是可以执行的。

调用的时候是用这个存储过程的owner吗,如果不是,在存储过程头部加上
AUTHID CURRENT_USER 。
如果是动态sql,需要显示的授权
grant select on xxx to xxx ;

Ⅶ SQL提示游标不存在

use LtsDatabase
GO
declare te cursor for
select * from 网站职员表 for read only

Ⅷ sql server中如何判断游标是否存在

--测试
DECLARE @SNAME VARCHAR(20)
DECLARE DD CURSOR FOR SELECT SNAME FROM S
OPEN DD
--楼上说的对.你要的是判断游标是否存在
select * from MASTER.dbo.syscursors where cursor_name='DD'
--以下操作为判断游标是否存在的同时检测游标状态。
SELECT (CASE WHEN CURSOR_STATUS('global','DD')=1 THEN '游标的结果集至少有一行'
WHEN CURSOR_STATUS('global','DD')=0 THEN '游标的结果集为空'
WHEN CURSOR_STATUS('global','DD')=-1 THEN '游标被关闭'
WHEN CURSOR_STATUS('global','DD')=-2 THEN '游标不适用'
WHEN CURSOR_STATUS('global','DD')=-3 THEN '游标不存在' END) AS RESULT
/*返回结果:
1
游标的结果集至少有一行。

对于不区分的游标和键集游标,结果集至少有一行。

对于动态游标,结果集可以有零行、一行或多行。
分配给该变量的游标已打开。

对于不区分的游标和键集游标,结果集至少有一行。

对于动态游标,结果集可以有零行、一行或多行。

0
游标的结果集为空。*
分配给该变量的游标已经打开,然而结果集肯定为空。*

-1
游标被关闭。
分配给该变量的游标被关闭。

-2
不适用。
可以是:

先前调用的过程并没有将游标分配给 OUTPUT 变量。

先前调用的过程为 OUTPUT 变量分配了游标,然而在过程结束时,游标处于关闭状态。因此,游标被释放,并且没有返回调用过程。

没有将游标分配给已声明的游标变量。

-3
具有指定名称的游标不存在。
具有指定名称的游标变量并不存在,或者即使存在这样一个游标变量,但并没有给它分配游标。

Ⅸ SQLSerVer不存在怎么解决

摘要 CSDN论坛,是全球IT交流论坛。下面是一篇解决数据库被拒绝访问方法。