Condividi tramite


sp_describe_cursor_columns (Transact-SQL)

Crea un report degli attributi associati alle colonne del set di risultati in un cursore del server.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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' ] 
   }

Argomenti

[ @cursor_return = ] output_cursor_variableOUTPUT

Nome di una variabile di cursore dichiarata per la ricezione dell'output del cursore. output_cursor_variable è di tipo cursor e non prevede alcun valore predefinito. Inoltre non deve essere associata ad alcun cursore quando si richiama la stored procedure sp_describe_cursor_columns. Il cursore restituito è di tipo scorrevole, dinamico e di sola lettura.

[ @cursor_source = ] { N'local' | N'global' | N'variable' }

Specifica se il cursore oggetto del report viene specificato utilizzando il nome di un cursore locale, di un cursore globale o di una variabile di cursore. Il parametro è di tipo nvarchar(30).

[ @cursor_identity = ] N'local_cursor_name'

Nome di un cursore creato da un'istruzione DECLARE CURSOR con la parola chiave LOCAL o che è stato creato come LOCAL per impostazione predefinita. local_cursor_name è di tipo nvarchar(128).

[ @cursor_identity = ] N'global_cursor_name'

Nome di un cursore creato da un'istruzione DECLARE CURSOR con la parola chiave GLOBAL o che è stato creato come GLOBAL per impostazione predefinita. global_cursor_name è di tipo nvarchar(128).

global_cursor_name può inoltre essere il nome di un cursore API del server aperto da un'applicazione ODBC e quindi denominato tramite una chiamata alla funzione SQLSetCursorName.

[ @cursor_identity = ] N'input_cursor_variable'

Nome di una variabile di cursore associata a un cursore aperto. input_cursor_variable è di tipo nvarchar(128).

Osservazioni

La stored procedure sp_describe_cursor_columns descrive gli attributi delle colonne di un set di risultati di un cursore del server, quali il nome e il tipo di dati di ogni colonna. Utilizzare sp_describe_cursor per ottenere una descrizione degli attributi globali del cursore del server. Utilizzare sp_describe_cursor_tables per ottenere un report delle tabelle di base a cui fa riferimento il cursore. Per ottenere un report relativo ai cursori server Transact-SQL visibili nella connessione, utilizzare la stored procedure sp_cursor_list.

Autorizzazioni

È richiesta l'appartenenza al ruolo public.

Valori restituiti

Nessuno

Cursori restituiti

sp_describe_cursor_columns incapsula i relativi rapporti come un parametro Transact-SQL di output di tipo cursor. In questo modo i batch, le stored procedure e i trigger Transact-SQL possono elaborare l'output una riga alla volta. Questo significa inoltre che non è possibile chiamare direttamente la procedura da funzioni API di database. Il parametro di output cursor deve essere associato a una variabile di programma, ma le API del database non supportano l'associazione di parametri o variabili cursor.

Nella seguente tabella viene descritto il formato del cursore restituito da sp_describe_cursor_columns.

Nome colonna Tipo di dati Descrizione

column_name

sysname (supporto di valori Null)

Nome assegnato alla colonna del set di risultati. La colonna è NULL se è stata specificata senza la clausola AS.

ordinal_position

int

Posizione relativa della colonna a partire dalla prima colonna a sinistra del set di risultati. La prima colonna si trova nella posizione 0.

column_characteristics_flags

int

Maschera di bit che indica le informazioni archiviate in DBCOLUMNFLAGS in OLE DB. I possibili valori sono i seguenti:

1 = Segnalibro

2 = Lunghezza fissa

4 = I valori Null sono supportati

8 = Controllo delle versioni delle righe

16 = Colonna aggiornabile (viene impostata per le eventuali colonne di cursore prive della clausola FOR UPDATE; un cursore può includere una sola colonna di questo tipo)

Quando i valori bit vengono combinati, vengono applicate le caratteristiche dei valori bit combinati. Se, ad esempio, il valore bit è 6, la colonna è a lunghezza fissa (2) e supporta i valori Null (4).

column_size

int

Dimensioni massime consentite per un valore della colonna.

data_type_sql

smallint

Numero che indica il tipo di dati SQL Server della colonna.

column_precision

tinyint

Precisione massima della colonna in base al valore bPrecision in OLE DB.

column_scale

tinyint

Numero di cifre a destra del separatore decimale per i tipi di dati numeric o decimal in base al valore bScale in OLE DB.

order_position

int

Se la colonna partecipa all'ordinamento del set di risultati, posizione della colonna nella chiave di ordinamento relativa alla prima colonna a sinistra.

order_direction

varchar(1) (supporto di valori Null)

A = La colonna è inclusa nella chiave di ordinamento e l'ordine è crescente.

D = La colonna è inclusa nella chiave di ordinamento e l'ordine è decrescente.

NULL = La colonna non partecipa all'ordinamento.

hidden_column

smallint

0 = La colonna è inclusa nell'elenco di selezione.

1 = Riservato per utilizzi futuri.

columnid

int

ID della colonna di base. Se la colonna del set di risultati è stata creata in base a un'espressione, columnid è -1.

objectid

int

ID dell'oggetto o della tabella di base che include la colonna. Se la colonna del set di risultati è stata creata in base a un'espressione, objectid è -1.

dbid

int

ID del database contenente la tabella di base che include la colonna. Se la colonna del set di risultati è stata creata in base a un'espressione, dbid è -1.

dbname

sysname

(supporto di valori Null)

Nome del database contenente la tabella di base che include la colonna. Se la colonna del set di risultati è stata creata in base a un'espressione, dbname è NULL.

Esempi

Nell'esempio seguente viene aperto un cursore globale e viene eseguita la stored procedure sp_describe_cursor_columns per creare un report relativo alle colonne utilizzate nel cursore.

USE AdventureWorks;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET FOR
SELECT LastName
FROM Person.Contact
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

Vedere anche

Riferimento

CURSOR_STATUS (Transact-SQL)
DECLARE CURSOR (Transact-SQL)
sp_describe_cursor (Transact-SQL)
sp_cursor_list (Transact-SQL)
sp_describe_cursor_tables (Transact-SQL)
Stored procedure di sistema (Transact-SQL)

Altre risorse

Cursori (Motore di database)

Guida in linea e informazioni

Assistenza su SQL Server 2005