Udostępnij za pośrednictwem


sp_describe_cursor_columns (języka Transact-SQL)

Raporty atrybutów kolumny w zestaw wyników serwer kursor.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

sp_describe_cursor_columns 
   [ @cursor_return = ] output_cursor_variable OUTPUT 
    { [ , [ @cursor_source = ] N'local' , 
          [ @cursor_identity = ] N'local_cursor_name' ] 
    | [ , [ @cursor_source = ] N'global' , 
          [ @cursor_identity = ] N'global_cursor_name' ] 
    | [ , [ @cursor_source = ] N'variable' , 
          [ @cursor_identity = ] N'input_cursor_variable' ] 
   }

Argumenty

  • [ @cursor_return= ] output_cursor_variable OUTPUT
    Jest nazwą zmiennej zadeklarowanej kursor do odbierania danych wyjściowych kursor .output_cursor_variablejest cursor, bez domyślnego i musi być skojarzone z dowolnym kursory w czas sp_describe_cursor_columns jest nazywany.kursor , zwracany jest przewijana, dynamiczne, tylko do odczytu kursor.

  • [ @cursor_source= ] { N'local " | N'global " | N'variable' }
    Określa, czy kursor dla jest określona przy użyciu nazwy lokalnego kursor, globalne kursorlub zmiennej kursor .Parametr jest nvarchar(30).

  • [ @cursor_identity= ] N'local_cursor_name'
    Jest to nazwa kursor utworzone przez DECLARE CURSOR instrukcja którego albo lokalne słowo kluczowe lub który ustawiana domyślnie z lokalnego.local_cursor_nameis nvarchar(128).

  • [ @cursor_identity= ] N'global_cursor_name'
    Jest to nazwa kursor utworzone przez DECLARE CURSOR instrukcja albo ma GLOBALNYCH słowo kluczowe lub który pobierana domyślnie szablon GLOBALNY.global_cursor_nameis nvarchar(128).

    global_cursor_namemożna także nazwa serwera API kursor jest otwarty przez aplikację ODBC i następnie o nazwie wywołując SQLSetCursorName.

  • [ @cursor_identity= ] N'input_cursor_variable'
    Jest nazwą zmiennej kursor skojarzonych z otwartych kursor.input_cursor_variableis nvarchar(128).

Wartości kodów powrotnych

Brak

Kursory zwrócone

sp_describe_cursor_columnshermetyzuje sprawozdaniu jako Transact-SQL kursor parametr wyjścia.Dzięki temu Transact-SQL partii, procedur przechowywanych i wyzwalaczy do pracy z jednego wiersza danych wyjściowych w czas.To oznacza, że procedura nie może być wywoływana bezpośrednio z funkcji API bazy danych.cursor Parametr wyjściowy musi być powiązana ze zmienną program, ale baza danych API obsługuje powiązanie cursor Parametry lub zmienne.

W poniższej tabela przedstawiono format kursor zwracane przy użyciu sp_describe_cursor_columns.

Nazwa kolumny

Typ danych

Opis

column_name

sysname(nullable)

Nazwa przypisana do zestaw wyników kolumna.kolumna ma wartość NULL, jeśli kolumna została określona bez towarzyszącej klauzula.

ordinal_position

int

Względne położenie kolumna z pierwszej kolumna w zestaw wyników.Pierwsza kolumna znajduje się w pozycji 0.

column_characteristics_flags

int

Maska bitowa wskazuje informacje przechowywane w DBCOLUMNFLAGS w OLE DB.Może być jeden lub kombinacji następujących czynności:

1 = Zakładki

2 = Stałej długości

4 = Nullable

8 = Przechowywanie wersji wiersza

16 = Aktualizowalnej kolumna (należyzestaw przewidywanych kolumn kursor nie aktualizacji dla klauzula i, jeżeli brak takiej kolumna, może być tylko jeden raz kursor).

Bitowe wartości są łączone, zastosować właściwości wartości bitowe Scalonej.Na przykład, jeśli wartość bitu wynosi 6, kolumna jest o stałej długości (2) (4) nullable kolumna.

column_size

int

Maksymalny możliwy rozmiar wartości w tej kolumna.

data_type_sql

smallint

Liczba określająca, SQL Server Typ danych kolumna.

column_precision

tinyint

Maksymalna precyzji kolumna na bPrecision wartość OLE DB.

column_scale

tinyint

Liczba cyfr po prawej stronie przecinka dziesiętnego dla numeric lub decimal typy danych na bScale wartość OLE DB.

order_position

int

Jeśli kolumna uczestniczy w kolejności zestaw wyników, położenie kolumna w kolejności klucz względem skrajną lewą kolumna.

order_direction

varchar(1)(nullable)

A = kolumna jest w porządku klucz i porządkowania jest rosnąco.

D = kolumna jest w porządku klucz i porządkowania jest malejąca.

NULL = kolumna nie uczestniczy w kolejności.

hidden_column

smallint

0 = ta kolumna jest wyświetlana na liście select.

1 = Zastrzeżony do wykorzystania w przyszłości.

columnid

int

Identyfikator kolumny bazowej kolumna.Jeśli zestaw wyników kolumna został zbudowany z wyrażenie, columnid jest równy -1.

objectid

int

Obiekt o identyfikatorze obiektu lub tabela bazowa jest dostarczanie kolumna.Jeśli zestaw wyników kolumna został zbudowany z wyrażenie, objectid jest równy -1.

dbid

int

Identyfikator bazy danych, która zawiera tabela bazowa jest dostarczanie kolumna.Jeśli zestaw wyników kolumna został zbudowany z wyrażenie, dbid jest równy -1.

dbname

sysname

(nullable)

Nazwa bazy danych, która zawiera tabela bazowa jest dostarczanie kolumna.Jeśli zestaw wyników kolumna został zbudowany z wyrażenie, dbname ma wartość NULL.

Uwagi

sp_describe_cursor_columnsopisuje atrybuty kolumny w zestaw wyników serwer kursor, takie jak nazwa i typ danych każdej kursor.Użycie sp_describe_cursor Opis globalnego atrybuty serwera kursor.Użycie sp_describe_cursor_tables dla raportów tabel bazowych odwołuje się kursor.Aby uzyskać raport Transact-SQL server kursory widoczne na połączenie, użyj sp_cursor_list.

Uprawnienia

Wymaga członkostwa w public rolę.

Przykłady

Poniższy przykład otwiera globalnego kursor i korzysta z sp_describe_cursor_columns do raportowania w kolumnach w kursor.

USE AdventureWorks2008R2;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET FOR
SELECT LastName
FROM Person.Person;
GO
OPEN abc;

-- Declare a cursor variable to hold the cursor output variable
-- from sp_describe_cursor_columns.
DECLARE @Report CURSOR;

-- Execute sp_describe_cursor_columns into the cursor variable.
EXEC master.dbo.sp_describe_cursor_columns
    @cursor_return = @Report OUTPUT
    ,@cursor_source = N'global' 
    ,@cursor_identity = N'abc';

-- Fetch all the rows from the sp_describe_cursor_columns output cursor.
FETCH NEXT from @Report;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
   FETCH NEXT from @Report;
END

-- Close and deallocate the cursor from sp_describe_cursor_columns.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO