Condividi tramite


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_QUALIFIERbase a , TABLE_OWNERe 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 NULLsempre .
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';