cursor_status (Transact-sql)

Skalar fonksiyon yordamı bir imleç ve sonuç kümesi için verilen parametre döndürülen olup olmadığını belirlemek için arayan saklı yordam sağlar.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

CURSOR_STATUS 
     (
          { 'local' , 'cursor_name' } 
          | { 'global' , 'cursor_name' } 
          | { 'variable' , 'cursor_variable' } 
     )

Bağımsız değişkenler

  • 'yerel'
    İmleci kaynağını gösteren sabit bir yerel imleç adı olduğunu belirtir.

  • 'cursor_name'
    İmleci adıdır. Imleç adı tanımlayıcıları kuralları uyması gerekir.

  • 'genel'
    İmleci kaynağını gösteren sabit genel imleç adı olduğunu belirtir.

  • 'değişken'
    Yerel bir değişken imleci kaynağını gösteren bir sabit olduğunu belirtir.

  • 'cursor_variable'
    Imleç değişken adıdır. Imleç değişkeni kullanılarak tanımlanmalıdır cursorveri türü.

Dönüş Türleri

smallint

Dönüş değeri

İmleç adı

Imleç değişken

1

İmleç sonuç kümesi en az bir satır vardır.

İçin duyarsız ve anahtar KÜMESI imleç, sonuç kümesi en az bir satır vardır.

Dinamik imleçler için sonuç kümesi sıfır, bir ya da daha fazla satır olabilir.

Bu değişken tahsis imleç açıktır.

İçin duyarsız ve anahtar KÜMESI imleç, sonuç kümesi en az bir satır vardır.

Dinamik imleçler için sonuç kümesi sıfır, bir ya da daha fazla satır olabilir.

0

İmleç sonuç kümesi empty.* olduğunu

Bu değişken tahsis imleç açıktır, ama sonuç kümesi kesinlikle empty.*

-1

İmleç kapalı.

Bu değişken tahsis imleç kapalı.

-2

Uygulanamaz.

Aşağıdakilerden biri olabilir:

Hiçbir imleç bu çıktı değişkenine daha önce çağrılan yordam tarafından atandı.

Bir imleç tarafından daha önce çağrılan yordam bu çıktı değişkenine atanan ama prosedür tamamlandıktan sonra kapalı bir devlet oldu. Bu nedenle, imleç kaldırıldı ve arama yordama geri değil.

Orada hiçbir imleç atanmış bir imleç bildirilen değişken.

-3

Belirtilen adı taşıyan bir imleç yok.

Belirtilen adı taşıyan bir imleç değişken yok veya varsa bunu henüz ayrılmış bir imleç görmemiştir.

* Dinamik imleçler hiçbir zaman bu sonuç döndürüyor.

Örnekler

Aşağıdaki örnek CURSOR_STATUSönce ve sonra açık ve kapalı bir imleç durumunu göstermek için işlevi.

CREATE TABLE #TMP
(
   ii int
)
GO

INSERT INTO #TMP(ii) VALUES(1)
INSERT INTO #TMP(ii) VALUES(2)
INSERT INTO #TMP(ii) VALUES(3)

GO

--Create a cursor.
DECLARE cur CURSOR
FOR SELECT * FROM #TMP

--Display the status of the cursor before and after opening
--closing the cursor.

SELECT CURSOR_STATUS('global','cur') AS 'After declare'
OPEN cur
SELECT CURSOR_STATUS('global','cur') AS 'After Open'
CLOSE cur
SELECT CURSOR_STATUS('global','cur') AS 'After Close'

--Remove the cursor.
DEALLOCATE cur

--Drop the table.
DROP TABLE #TMP

CREATE TABLE #TMP
(
   ii int
)
GO

INSERT INTO #TMP(ii) VALUES(1)
INSERT INTO #TMP(ii) VALUES(2)
INSERT INTO #TMP(ii) VALUES(3)

GO

--Create a cursor.
DECLARE cur CURSOR
FOR SELECT * FROM #TMP

--Display the status of the cursor before and after opening
--closing the cursor.

SELECT CURSOR_STATUS('global','cur') AS 'After declare'
OPEN cur
SELECT CURSOR_STATUS('global','cur') AS 'After Open'
CLOSE cur
SELECT CURSOR_STATUS('global','cur') AS 'After Close'

--Remove the cursor.
DEALLOCATE cur

--Drop the table.
DROP TABLE #TMP

Sonuç kümesi buradadır.

After declare

---------------

-1

After Open

----------

1

After Close

-----------

-1

Ayrıca bkz.

Başvuru

Imleç işlevler (Transact-sql)

Veri Türleri (Transact-SQL)