sys.columns (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di strumenti analitici (PDW)Endpoint di analisi SQL in Microsoft FabricWarehouse in Microsoft Fabric

Restituisce una riga per ogni colonna di un oggetto contenente colonne, ad esempio viste o tabelle. Nell'elenco seguente sono inclusi i tipi di oggetti contenenti colonne.

  • Funzioni assembly con valori di tabella (FT)

  • Funzioni SQL inline con valori di tabella (IF)

  • Tabelle interne (IT)

  • Tabelle di sistema (S)

  • Funzioni SQL con valori di tabella (TF)

  • Tabelle utente (U)

  • Viste (V)

Nome colonna Tipo di dati Descrizione
object_id int ID dell'oggetto a cui appartiene la colonna.
name sysname Nome della colonna. Valore univoco all'interno dell'oggetto.
column_id int ID della colonna. Valore univoco all'interno dell'oggetto.

È possibile che gli ID di colonna non siano sequenziali.
system_type_id tinyint ID del tipo di sistema della colonna.
user_type_id int ID del tipo di colonna definito dall'utente.

Per restituire il nome del tipo, aggiungere alla vista del catalogo sys.types in questa colonna.
max_length smallint Lunghezza massima in byte della colonna.

-1 = Il tipo di dati della colonna è varchar(max), nvarchar(max), varbinary(max)o xml.

Per le colonne text, ntext e image , il valore max_length sarà 16 (che rappresenta solo il puntatore a 16 byte) o il valore impostato da sp_tableoption 'text in row'.
precisione tinyint Precisione della colonna se la colonna è di tipo numerico. In caso contrario, 0.
scala tinyint Scala della colonna se di tipo numerico, altrimenti 0.
collation_name sysname Nome delle regole di confronto della colonna se basato su caratteri; in caso contrario NULL, .
is_nullable bit 1 = La colonna ammette valori Null.
is_ansi_padded bit 1 = La colonna utilizza l'opzione ANSI_PADDING ON se è di tipo carattere, binary o variant.

0 = La colonna non è di tipo carattere, binary o variant.
is_rowguidcol bit 1 = La colonna è una parola chiave ROWGUIDCOL dichiarata.
is_identity bit 1 = La colonna ha valori Identity
is_computed bit 1 = La colonna è una colonna calcolata.
is_filestream bit 1 = la colonna è una colonna FILESTREAM.
is_replicated bit 1 = La colonna viene replicata.
is_non_sql_subscribed bit 1 = la colonna ha un Sottoscrittore non SQL Server.
is_merge_published bit 1 = La colonna è inclusa in una pubblicazione di tipo merge.
is_dts_replicated bit 1 = La colonna viene replicata tramite SSIS.
is_xml_document bit 1 = Il contenuto è un documento XML completo.

0 = Il contenuto è un frammento di documento o il tipo di dati della colonna non è xml.
xml_collection_id int Diverso da zero se il tipo di dati della colonna è xml e il codice XML viene tipizzato. Il valore sarà l'ID della raccolta che include lo spazio dei nomi dell'XML Schema di convalida della colonna.

0 = Nessuna raccolta di XML Schema.
default_object_id int ID dell'oggetto predefinito, indipendentemente dal fatto che si tratti di un oggetto autonomo sys.sp_bindefault o di un vincolo DEFAULT a livello di colonna inline. La colonna parent_object_id di un oggetto predefinito inline a livello di colonna è un riferimento alla tabella stessa.

0 = nessun valore predefinito.
rule_object_id int ID della regola autonoma associata alla colonna tramite sys.sp_bindrule.

0 = Nessuna regola autonoma. Per i vincoli CHECK a livello di colonna, vedere sys.check_constraints (Transact-SQL).
is_sparse bit 1 = La colonna è di tipo sparse. Per altre informazioni, vedere Usare le colonne di tipo sparse.
is_column_set bit 1 = La colonna è un set di colonne. Per altre informazioni, vedere Usare le colonne di tipo sparse.
generated_always_type tinyint Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL. 5, 6, 7, 8 si applica solo a database SQL.

Identifica quando viene generato il valore della colonna (sarà sempre 0 per le colonne nelle tabelle di sistema):

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END
5 = AS_TRANSACTION_ID_START
6 = AS_TRANSACTION_ID_END
7 = AS_edizione Standard QUENCE_NUMBER_START
8 = AS_edizione Standard QUENCE_NUMBER_END

Per altre informazioni, vedere Tabelle temporali (database relazionali).
generated_always_type_desc nvarchar(60) Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL.

Descrizione testuale del generated_always_typevalore di (sempre NOT_APPLICABLE per le colonne nelle tabelle di sistema)

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

Si applica a: a partire da SQL Server 2022 (16.x), database SQL

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_edizione Standard QUENCE_NUMBER_START
AS_edizione Standard QUENCE_NUMBER_END
encryption_type int Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL.

Tipo di crittografia:

1 = Crittografia deterministica

2 = Crittografia casuale
encryption_type_desc nvarchar(64) Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL.

Descrizione del tipo di crittografia:

RANDOMIZZATO

DETERMINISTIC
encryption_algorithm_name sysname Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL.

Nome dell'algoritmo di crittografia.

È supportato solo AEAD_AES_256_CBC_HMAC_SHA_512.
column_encryption_key_id int Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL.

ID della chiave cek.
column_encryption_key_database_name sysname Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL.

Nome del database in cui esiste la chiave di crittografia della colonna se diverso dal database della colonna. NULL se la chiave esiste nello stesso database della colonna.
is_hidden bit Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL.

Indica se la colonna è nascosta:

0 = colonna regolare, non nascosta, visibile

1 = colonna nascosta
is_masked bit Si applica a: SQL Server 2016 (13.x) e versioni successive, Database SQL.

Indica se la colonna è mascherata da una maschera dati dinamica:

0 = colonna normale, non mascherata

1 = la colonna è mascherata
graph_type int Colonna interna con un set di valori. I valori sono compresi tra 1 e 8 per le colonne del grafo e NULL per altri.
graph_type_desc nvarchar(60) colonna interna con un set di valori
is_data_deletion_filter_column bit Si applica a: SQL Edge di Azure. Indica se la colonna è la colonna del filtro di conservazione dei dati per la tabella.
ledger_view_column_type tinyint Si applica a: a partire da SQL Server 2022 (16.x), database SQL.

Se non è NULL, indica il tipo di una colonna in una visualizzazione libro mastro:

1 = TRANSACTION_ID
2 = edizione Standard QUENCE_NUMBER
3 = OPERATION_TYPE
4 = OPERATION_TYPE_DESC

Per altre informazioni sul libro mastro del database, vedere Libro mastro.
ledger_view_column_type_desc nvarchar(60) Si applica a: a partire da SQL Server 2022 (16.x), database SQL.

Se non è NULL, contiene una descrizione testuale del tipo di colonna in una visualizzazione libro mastro:

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC
is_dropped_ledger_table_column bit Si applica a: a partire da SQL Server 2022 (16.x), database SQL.

Indica una colonna della tabella libro mastro eliminata.

Autorizzazioni

La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui un utente è proprietario o a cui l'utente ha concesso alcune autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.

Vedi anche

Viste di sistema (Transact-SQL)
Viste del catalogo oggetti (Transact-SQL)
Viste del catalogo (Transact-SQL)
Domande frequenti sull'esecuzione di query nel catalogo di sistema di SQL Server
sys.all_columns (Transact-SQL)
sys.system_columns (Transact-SQL)