Condividi tramite


SQLColumns

Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)

SQLColumns restituisce SQL_SUCCESS se esistono o meno valori per i parametri CatalogName, TableName o ColumnName . SQLFetch restituisce SQL_NO_DATA quando in questi parametri vengono usati valori non validi.

Nota

Per i tipi di valori di grandi dimensioni, tutti i parametri della lunghezza verranno restituiti con un valore di SQL_SS_LENGTH_UNLIMITED.

SQLColumns può essere eseguito in un cursore del server statico. Un tentativo di eseguire SQLColumns in un cursore aggiornabile (dinamico o keyset) restituirà SQL_SUCCESS_WITH_INFO indicante che il tipo di cursore è stato modificato.

Il driver ODBC di SQL Server Native Client supporta la creazione di report per le tabelle nei server collegati accettando un nome in due parti per il parametro CatalogName : Linked_Server_Name.Catalog_Name.

Per ODBC 2.Le applicazioni x che non usano caratteri jolly in TableName, SQLColumns restituisce informazioni sulle tabelle i cui nomi corrispondono a TableName e sono di proprietà dell'utente corrente. Se l'utente corrente non possiede alcuna tabella il cui nome corrisponde al parametro TableName , SQLColumns restituisce informazioni sulle tabelle di proprietà di altri utenti in cui il nome della tabella corrisponde al parametro TableName . Per ODBC 2.X applicazioni che usano caratteri jolly, SQLColumns restituisce tutte le tabelle i cui nomi corrispondono a TableName. Per ODBC 3.X applications SQLColumns restituisce tutte le tabelle i cui nomi corrispondono a TableName indipendentemente dal proprietario o dal fatto che vengano utilizzati caratteri jolly.

Nella tabella seguente vengono elencate le colonne restituite dal set di risultati:

Nome colonna Descrizione
DATA_TYPE Restituisce SQL_VARCHAR, SQL_VARBINARY o SQL_WVARCHAR per i tipi di dati varchar(max).
TYPE_NAME Restituisce "varchar", "varbinary" o "nvarchar" per i tipi di dati varchar(max), varbinary(max)e nvarchar(max).
COLUMN_SIZE Restituisce SQL_SS_LENGTH_UNLIMITED per i tipi di dati varchar(max) che indicano che le dimensioni della colonna sono illimitate.
BUFFER_LENGTH Restituisce SQL_SS_LENGTH_UNLIMITED per i tipi di dati varchar(max) che indicano che le dimensioni del buffer sono illimitate.
SQL_DATA_TYPE Restituisce SQL_VARCHAR, SQL_VARBINARY o SQL_WVARCHAR per i tipi di dati varchar(max).
CHAR_OCTET_LENGTH Restituisce la lunghezza massima di una colonna di tipo carattere o binario. Restituisce 0 per indicare che la dimensione è illimitata.
SS_XML_SCHEMACOLLECTION_CATALOG_NAME Restituisce il nome del catalogo nel quale è definito il nome di una raccolta di XML Schema. Se non è possibile trovare il nome del catalogo, questa variabile contiene una stringa vuota.
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME Restituisce il nome dello schema nel quale è definito il nome di una raccolta di XML Schema. Se non è possibile trovare il nome dello schema, questa variabile contiene una stringa vuota.
SS_XML_SCHEMACOLLECTION_NAME Restituisce il nome di una raccolta di XML Schema. Se non è possibile trovare il nome, questa variabile contiene una stringa vuota.
SS_UDT_CATALOG_NAME Nome del catalogo contenente il tipo definito dall'utente.
SS_UDT_SCHEMA_NAME Nome dello schema contenente il tipo definito dall'utente.
SS_UDT_ASSEMBLY_TYPE_NAME Nome completo dell'assembly del tipo definito dall'utente.

Per i tipi definiti dall'utente, la colonna TYPE_NAME esistente viene usata per indicare il nome del tipo definito dall'utente; pertanto non deve essere aggiunta alcuna colonna aggiuntiva al set di risultati di SQLColumns o SQLProcedureColumns. DATA_TYPE per un parametro o una colonna con tipo definito dall'utente è SQL_SS_UDT.

Per il tipo definito dall'utente dei parametri, è possibile utilizzare i nuovi descrittori specifici del driver definiti precedentemente per ottenere o impostare le proprietà di metadati aggiuntive di un tipo definito dall'utente, nel caso in cui il server restituisca o richieda queste informazioni.

Quando un client si connette a SQL Server e chiama SQLColumns, l'uso di valori NULL o jolly per il parametro di input del catalogo non restituirà informazioni da altri cataloghi. Verranno invece restituite solo informazioni relative al catalogo corrente. Il client può prima chiamare SQLTables per determinare in quale catalogo si trova la tabella desiderata. Il client può quindi usare tale valore del catalogo per il parametro di input del catalogo nella chiamata a SQLColumns per recuperare informazioni sulle colonne in tale tabella.

SQLColumns e parametri con valori di tabella

Il set di risultati restituito da SQLColumns dipende dall'impostazione di SQL_SOPT_SS_NAME_SCOPE. Per altre informazioni, vedere SQLSetStmtAttr. Di seguito sono indicate le colonne che sono state aggiunte per i parametri con valori di tabella:

Nome colonna Tipo di dati Contenuto
SS_IS_COMPUTED Smallint Per una colonna in TABLE_TYPE, SQL_TRUE se la colonna è una colonna calcolata. In caso contrario, SQL_FALSE.
SS_IS_IDENTITY Smallint SQL_TRUE se la colonna è una colonna Identity. In caso contrario, SQL_FALSE.

Per altre informazioni sui parametri con valori di tabella, vedere Parametri con valori di tabella (ODBC).

Supporto di SQLColumns per le caratteristiche avanzate di data e ora

Per informazioni sui valori restituiti per i tipi di data/ora, vedere Metadati del catalogo.

Per altre informazioni, vedere Miglioramenti di data e ora (ODBC).

Supporto di SQLColumns per tipi CLR definiti dall'utente di grandi dimensioni

SQLColumns supporta tipi CLR definiti dall'utente di grandi dimensioni. Per altre informazioni, vedere Tipi CLR definiti dall'utente (ODBC) di grandi dimensioni.

Supporto di SQLColumns per colonne di tipo sparse

Sono state aggiunte due colonne specifiche di SQL Server al set di risultati per SQLColumns:

Nome colonna Tipo di dati Descrizione
SS_IS_SPARSE Smallint SQL_TRUE se una colonna è di tipo sparse. In caso contrario, SQL_FALSE.
SS_IS_COLUMN_SET Smallint Se la colonna è la colonna column_set , questa è SQL_TRUE; in caso contrario, SQL_FALSE.

In conformità con la specifica ODBC, SS_IS_SPARSE e SS_IS_COLUMN_SET vengono visualizzate prima di tutte le colonne specifiche del driver aggiunte alle versioni di SQL Server precedenti a SQL Server 2008 (10.0.x) e dopo tutte le colonne richieste da ODBC stesso.

Il set di risultati restituito da SQLColumns dipende dall'impostazione di SQL_SOPT_SS_NAME_SCOPE. Per altre informazioni, vedere SQLSetStmtAttr.

Per altre informazioni sulle colonne di tipo sparse in ODBC, vedere Supporto colonne di tipo sparse (ODBC).

Vedi anche

Funzione SQLColumns
Dettagli di implementazione dell'API ODBC