sys.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
Restituisce una riga per ogni colonna di un oggetto contenente colonne, ad esempio viste o tabelle. L'elenco seguente contiene i tipi di oggetto con 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 max_length valore è 16 (che rappresenta solo il puntatore a 16 byte) o il valore impostato da sp_tableoption 'text in row' . |
precision |
tinyint | Precisione della colonna se in base numerica; in caso contrario, 0 . |
scale |
tinyint | Scala della colonna se basata su numerico; in caso contrario, 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 è nullable0 = La colonna non è nullable |
is_ansi_padded |
bit | 1 = La colonna usa il ANSI_PADDING ON comportamento se carattere, binario o variante0 = La colonna non è di tipo carattere, binario o variant |
is_rowguidcol |
bit | 1 = La colonna è dichiarata ROWGUIDCOL |
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 viene pubblicata in merge |
is_dts_replicated |
bit | 1 = La colonna viene replicata tramite SSIS |
is_xml_document |
bit | 1 = Il contenuto è un documento XML completo0 = 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 è l'ID della raccolta contenente lo spazio dei nomi XML Schema di convalida della colonna0 = Nessuna raccolta di XML Schema |
default_object_id |
int | ID dell'oggetto predefinito, indipendentemente dal fatto che si tratti di un oggetto autonomo sp_bindefault o di un vincolo a livello DEFAULT 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 a livello CHECK di colonna, vedere sys.check_constraints. |
is_sparse |
bit | 1 = La colonna è una colonna di tipo sparse. Per altre informazioni, vedere Usare colonne di tipo sparse. |
is_column_set |
bit | 1 = La colonna è un set di colonne. Per altre informazioni, vedere Usare colonne di tipo sparse. |
generated_always_type |
tinyint | Identifica quando viene generato il valore della colonna (è sempre 0 per le colonne nelle tabelle di sistema).Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL. 0 = NOT_APPLICABLE 1 = AS_ROW_START 2 = AS_ROW_END Si applica a: SQL Server 2022 (16.x) e versioni successive e database SQL. 5 = AS_TRANSACTION_ID_START 6 = AS_TRANSACTION_ID_END 7 = AS_SEQUENCE_NUMBER_START 8 = AS_SEQUENCE_NUMBER_END Per altre informazioni, vedere Tabelle temporali (database relazionali). |
generated_always_type_desc |
nvarchar(60) | Descrizione testuale del generated_always_type valore (sempre NOT_APPLICABLE per le colonne nelle tabelle di sistema)Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL. NOT_APPLICABLE AS_ROW_START AS_ROW_END Si applica a: SQL Server 2022 (16.x) e versioni successive e database SQL. AS_TRANSACTION_ID_START AS_TRANSACTION_ID_END AS_SEQUENCE_NUMBER_START AS_SEQUENCE_NUMBER_END |
encryption_type |
int | Tipo di crittografia:1 = Crittografia deterministica2 = Crittografia casualeSi applica a: SQL Server 2016 (13.x) e versioni successive e database SQL |
encryption_type_desc |
nvarchar(64) | Descrizione del tipo di crittografia:RANDOMIZED DETERMINISTIC Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL |
encryption_algorithm_name |
sysname | Nome dell'algoritmo di crittografia. È supportato solo AEAD_AES_256_CBC_HMAC_SHA_512 .Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL |
column_encryption_key_id |
int | ID della chiave di crittografia della colonna (CEK). Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL |
column_encryption_key_database_name |
sysname | 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.Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL |
is_hidden |
bit | Indica se la colonna è nascosta:0 = colonna regolare, non nascosta, visibile1 = colonna nascostaSi applica a: SQL Server 2016 (13.x) e versioni successive e database SQL |
is_masked |
bit | Indica se la colonna è mascherata dalla maschera dati dinamica:0 = colonna normale, non mascherata1 = la colonna è mascherataSi applica a: SQL Server 2016 (13.x) e versioni successive e database SQL |
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 altre. |
graph_type_desc |
nvarchar(60) | Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future. |
is_data_deletion_filter_column |
bit | Indica se la colonna è la colonna del filtro di conservazione dei dati per la tabella. Si applica a: SQL Edge di Azure |
ledger_view_column_type |
int | In caso contrario NULL , indica il tipo di una colonna in una visualizzazione libro mastro:1 = TRANSACTION_ID 2 = SEQUENCE_NUMBER 3 = OPERATION_TYPE 4 = OPERATION_TYPE_DESC Per altre informazioni, vedere Panoramica del libro mastro. Si applica a: SQL Server 2022 (16.x) e versioni successive e database SQL |
ledger_view_column_type_desc |
nvarchar(60) | 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 Si applica a: SQL Server 2022 (16.x) e versioni successive e database SQL |
is_dropped_ledger_column |
bit | Indica una colonna della tabella libro mastro eliminata. Si applica a: SQL Server 2022 (16.x) e versioni successive e database SQL |
Autorizzazioni
La visibilità dei metadati nelle viste del catalogo è limitata alle entità a protezione diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni. Per altre informazioni, vedere Metadata Visibility Configuration.
Esempi di utilizzo
Ottenere i dettagli della colonna per una tabella
Per ottenere i metadati per le colonne in una tabella, è possibile usare il codice seguente:
CREATE TABLE dbo.[sample] (
id INT NOT NULL
,col1 VARBINARY(10) NULL
)
GO
SELECT c.[name] AS column_name
,t.[name] AS [type_name]
,c.[max_length]
,c.[precision]
,c.[scale]
FROM sys.columns c
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE object_id = object_id('dbo.sample');