Condividi tramite


SQLColumns

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.

Annotazioni

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

SQLColumns può essere eseguito su un cursore server statico. Un tentativo di esecuzione SQLColumns su 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 le informazioni di 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. X applicazioni 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 sono elencate le colonne restituite dal set di risultati:

Nome della colonna Descrizione
tipo di dati 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 char o binaria. 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 (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. Il DATA_TYPE per una colonna o un parametro definito dall'utente è SQL_SS_UDT.

Per il tipo definito dall'utente dei parametri, è possibile usare i nuovi descrittori specifici del driver definiti in precedenza per ottenere o impostare le proprietà aggiuntive dei metadati di un tipo definito dall'utente, se il server restituisce o richiede 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 le informazioni sul 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.

Parametri SQLColumns e Table-Valued

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

Nome della colonna Tipo di dati Contenuto
SS_IS_COMPUTED Smallint Per una colonna in un TABLE_TYPE, si tratta di 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 funzionalità 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 definiti dall'utente CLR 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 della colonna Tipo di dati Descrizione
SS_IS_SPARSE Smallint Se la colonna è una colonna di tipo sparse, si tratta di SQL_TRUE; in caso contrario, SQL_FALSE.
SS_IS_COLUMN_SET Smallint Se la colonna è la column_set colonna, 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 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).

Vedere anche

Funzione SQLColumns
Dettagli di implementazione dell'API ODBC