當前位置:首頁 » 編程語言 » 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交流論壇。下面是一篇解決資料庫被拒絕訪問方法。