sp_columns (Transact-SQL)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW) Endpoint di analisi SQL in Microsoft Fabric Warehouse in Microsoft Fabric
Vengono restituite le informazioni di colonna per gli oggetti specificati per cui è possibile eseguire una query nell'ambiente corrente.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_columns
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @column_name = ] N'column_name' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ ; ]
Argomenti
[ @table_name = ] N'table_name'
@table_name è nvarchar(384), senza impostazione predefinita.
Nome dell'oggetto utilizzato per restituire informazioni sul catalogo. @table_name può essere una tabella, una vista o un altro oggetto che è una colonna, ad esempio funzioni con valori di tabella. @table_name è nvarchar(384), senza impostazione predefinita. La ricerca con caratteri jolly è supportata.
[ @table_owner = ] N'table_owner'
Proprietario dell'oggetto utilizzato per restituire informazioni sul catalogo. @table_owner è nvarchar(384), con il valore predefinito NULL
. La ricerca con caratteri jolly è supportata. Se non viene specificato @table_owner , si applicano le regole di visibilità degli oggetti predefinite del sistema DBMS sottostante.
Se l'utente corrente è il proprietario di un oggetto con il nome specificato, vengono restituite le colonne di tale oggetto. Se @table_owner non è specificato e l'utente corrente non è proprietario di un oggetto con il @table_name specificato, sp_columns
cerca un oggetto con il @table_name specificato di proprietà del proprietario del database. Se viene individuato, vengono restituite le colonne di tale oggetto.
[ @table_qualifier = ] N'table_qualifier'
@table_qualifier è sysname, con un valore predefinito .NULL
Nome del qualificatore dell'oggetto. @table_qualifier è sysname, con un valore predefinito .NULL
Vari prodotti DBMS supportano la denominazione in tre parti per gli oggetti (<qualifier>.<owner>.<name>
). In SQL Server questa colonna rappresenta il nome del database. In alcuni prodotti rappresenta il nome del server dell'ambiente di database dell'oggetto.
[ @column_name = ] N'column_name'
Una singola colonna e viene utilizzata quando si desidera una sola colonna di informazioni sul catalogo. @column_name è nvarchar(384), con il valore predefinito NULL
. Se @column_name non viene specificato, vengono restituite tutte le colonne. In SQL Server @column_name rappresenta il nome della colonna come indicato nella syscolumns
tabella. La ricerca con caratteri jolly è supportata. Per garantire l'interoperabilità massima, il client gateway deve presupporre solo la corrispondenza dei criteri standard DI SQL-92 (caratteri %
jolly e _
).
[ @ODBCVer = ] ODBCVer
Versione di ODBC in uso. @ODBCVer è int, con un valore predefinito .2
che indica ODBC versione 2. I valori validi sono 2
o 3
. Per le differenze di comportamento tra le versioni 2 e 3, vedere la specifica ODBC SQLColumns
.
Valori del codice restituito
Nessuno.
Set di risultati
La sp_columns
stored procedure del catalogo equivale a SQLColumns
in ODBC. I risultati restituiti vengono ordinati in TABLE_QUALIFIER
base a , TABLE_OWNER
e TABLE_NAME
.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
TABLE_QUALIFIER |
sysname | Nome del qualificatore dell'oggetto. Questo campo può essere NULL . |
TABLE_OWNER |
sysname | Nome del proprietario dell'oggetto. Questo campo restituisce sempre un valore. |
TABLE_NAME |
sysname | Nome dell'oggetto. Questo campo restituisce sempre un valore. |
COLUMN_NAME |
sysname | Nome colonna, per ogni colonna dell'oggetto TABLE_NAME restituito. Questo campo restituisce sempre un valore. |
DATA_TYPE |
smallint | Codice integer per il tipo di dati ODBC. Se questo tipo di dati non può essere mappato a un tipo ODBC, è NULL . Il nome del tipo di dati nativo viene restituito nella TYPE_NAME colonna . |
TYPE_NAME |
sysname | Stringa che rappresenta un tipo di dati. Il DBMS sottostante utilizza questo nome del tipo di dati. |
PRECISION |
int | Numero di cifre significative. Il valore restituito per la PRECISION colonna è in base 10. |
LENGTH |
int | Dimensioni di trasferimento dei dati. 1 |
SCALE |
smallint | Numero di cifre a destra del separatore decimale. |
RADIX |
smallint | Base per i tipi di dati numerici. |
NULLABLE |
smallint | Specifica se i valori Null sono supportati.1 = NULL è possibile.0 = NOT NULL . |
REMARKS |
varchar(254) | Questo campo restituisce NULL sempre . |
COLUMN_DEF |
nvarchar(4000) | Valore predefinito della colonna. |
SQL_DATA_TYPE |
smallint | Valore del tipo di dati SQL visualizzato nel campo TYPE del descrittore. Questa colonna è la stessa della DATA_TYPE colonna, ad eccezione dei tipi di dati datetime e SQL-92 interval . Questa colonna restituisce sempre un valore . |
SQL_DATETIME_SUB |
smallint | Codice del sottotipo per i tipi di dati datetime e SQL-92 interval . Per altri tipi di dati, questa colonna restituisce NULL . |
CHAR_OCTET_LENGTH |
int | Lunghezza massima, espressa in byte, di una colonna di tipo carattere o integer. Per tutti gli altri tipi di dati, questa colonna restituisce NULL . |
ORDINAL_POSITION |
int | Posizione ordinale della colonna nell'oggetto. La prima colonna nell'oggetto è 1. Questa colonna restituisce sempre un valore . |
IS_NULLABLE |
varchar(254) | Supporto di valori Null della colonna dell'oggetto. Per determinare il supporto di valori Null vengono seguite le regole ISO. Un DBMS conforme a ISO SQL non può restituire una stringa vuota.YES = La colonna può includere NULL .NO = La colonna non può includere NULL .Quando non è noto se i valori Null sono supportati, in questa colonna viene restituita una stringa di lunghezza zero. Il valore restituito per questa colonna è diverso dal valore restituito per la NULLABLE colonna. |
SS_DATA_TYPE |
tinyint | Tipo di dati di SQL Server usato dalle stored procedure estese. Per ulteriori informazioni, vedi Tipi di dati. |
1 Per altre informazioni, vedere Panoramica di ODBC.
Autorizzazioni
Richiede SELECT
le autorizzazioni e VIEW DEFINITION
per lo schema.
Osservazioni:
sp_columns
segue i requisiti per gli identificatori delimitati. Per altre informazioni, vedere Identificatori di database.
Esempi
Gli esempi di codice Transact-SQL in questo articolo utilizzano il database campione AdventureWorks2022
o AdventureWorksDW2022
, che è possibile scaricare dalla home page di Esempi di Microsoft SQL Server e progetti collettivi.
Nell'esempio seguente vengono restituite informazioni sulle colonne della tabella specificata.
USE AdventureWorks2022;
GO
EXEC sp_columns
@table_name = N'Department',
@table_owner = N'HumanResources';
Esempi: Azure Synapse Analytics e Piattaforma di strumenti analitici (PDW)
Nell'esempio seguente vengono restituite informazioni sulle colonne della tabella specificata.
USE AdventureWorksDW2022;
GO
EXEC sp_columns
@table_name = N'DimEmployee',
@table_owner = N'dbo';