sys.tables (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

Restituisce una riga per ogni tabella utente in SQL Server.

Nome colonna Tipo di dati Descrizione
<inherited columns> Per un elenco delle colonne ereditate da questa vista, vedere sys.objects (Transact-SQL).
lob_data_space_id int Un valore diverso da zero corrisponde all'ID dello spazio dati (filegroup o schema di partizione) in cui sono inclusi dati LOB (large object binary) per la tabella. Esempi di tipi di dati LOB includono varbinary(max), varchar(max), geography o xml.

0 = nella tabella non sono presenti dati LOB.
filestream_data_space_id int ID dello spazio dati per un filegroup FILESTREAM o schema di partizione costituito da filegroup FILESTREAM.

Per segnalare il nome di un filegroup FILESTREAM, eseguire la query SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables.

È possibile aggiungere sys.tables alle viste seguenti in filestream_data_space_id = data_space_id.

- sys.filegroups

- sys.partition_schemes

- sys.indexes

- sys.allocation_units

- sys.fulltext_catalogs

- sys.data_spaces

- sys.destination_data_spaces

- sys.master_files

- sys.database_files

- backupfilegroup (join in filegroup_id)
max_column_id_used int ID di colonna massimo utilizzato dalla tabella.
lock_on_bulk_load bit La tabella è bloccata durante il caricamento bulk. Per altre informazioni, vedere sp_tableoption (Transact-SQL).
uses_ansi_nulls bit La tabella è stata creata con l'opzione di database SET ANSI_NULLS impostata su ON.
is_replicated bit 1 = La tabella è stata pubblicata tramite una replica snapshot o una replica transazionale.
has_replication_filter bit 1 = La tabella è associata a un filtro di replica.
is_merge_published bit 1 = La tabella è stata pubblicata tramite una replica di tipo merge.
is_sync_tran_subscribed bit 1 = La tabella è stata sottoscritta tramite una sottoscrizione ad aggiornamento immediato.
has_unchecked_assembly_data bit 1 = La tabella contiene dati persistenti che dipendono da un assembly la cui definizione è stata modificata durante l'ultima esecuzione di ALTER ASSEMBLY. Verrà reimpostato su 0 dopo la successiva esecuzione di DBCC CHECKDB o DBCC CHECKTABLE con esito positivo.
text_in_row_limit int Numero minimo di byte consentito per il testo nella riga.

0 = L'opzione Text in row non è impostata. Per altre informazioni, vedere sp_tableoption (Transact-SQL).
large_value_types_out_of_row bit 1 = I tipi per valori di grandi dimensioni vengono archiviati esternamente alla riga. Per altre informazioni, vedere sp_tableoption (Transact-SQL).
is_tracked_by_cdc bit 1 = Per la tabella è abilitata l'acquisizione dei dati delle modifiche. Per altre informazioni, vedere sys.sp_cdc_enable_table (Transact-SQL).
lock_escalation tinyint Valore dell'opzione LOCK_ESCALATION per la tabella:

0 = TABLE

1 = DISABLE

2 = AUTO
lock_escalation_desc nvarchar(60) Descrizione di testo dell'opzione lock_escalation per la tabella. I valori possibili sono TABLE, AUTO e DISABLE.
is_filetable bit SI APPLICA A: SQL Server 2012 (11.x) e versioni successive e database SQL di Azure.

1 = la tabella è una tabella FileTable.

Per altre informazioni sugli oggetti FileTable, vedere FileTables (SQL Server).
durability tinyint SI APPLICA A: SQL Server 2014 (12.x) e versioni successive e database SQL di Azure.

Di seguito sono indicati i valori possibili:

0 = SCHEMA_AND_DATA

1 = SCHEMA_ONLY

Il valore predefinito è 0.
durability_desc nvarchar(60) SI APPLICA A: SQL Server 2014 (12.x) e versioni successive e database SQL di Azure.

Di seguito sono indicati i valori possibili:

SCHEMA_ONLY

SCHEMA_AND_DATA

Il valore di SCHEMA_AND_DATA indica che la tabella è durevole e in memoria. SCHEMA_AND_DATA è il valore predefinito per le tabelle con ottimizzazione per la memoria. Il valore di SCHEMA_ONLY indica che i dati della tabella non verranno resi persistenti al riavvio del database con gli oggetti con ottimizzazione per la memoria.
is_memory_optimized bit SI APPLICA A: SQL Server 2014 (12.x) e versioni successive e database SQL di Azure.

Di seguito sono indicati i valori possibili:

0 = senza ottimizzazione per la memoria.

1 = con ottimizzazione per la memoria.

Il valore predefinito è 0.

Le tabelle con ottimizzazione per la memoria sono tabelle utente in memoria, il cui schema è persistente su disco in modo analogo ad altre tabelle utente. È possibile accedere alle tabelle con ottimizzazione per la memoria da stored procedure compilate in modo nativo.
temporal_type tinyint SI APPLICA A: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure.

Valore numerico che rappresenta il tipo di tabella:

0 = NON_TEMPORAL_TABLE

1 = HISTORY_TABLE (associato a una tabella temporale)

2 = SYSTEM_VERSIONED_TEMPORAL_TABLE
temporal_type_desc nvarchar(60) SI APPLICA A: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure.

Descrizione testuale del tipo di tabella:

NON_TEMPORAL_TABLE

HISTORY_TABLE

SYSTEM_VERSIONED_TEMPORAL_TABLE
history_table_id int SI APPLICA A: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure.

Quando temporal_type = 2 o ledger_type = 2 restituisce object_id della tabella che gestisce i dati cronologici per una tabella temporale, in caso contrario restituisce NULL.
is_remote_data_archive_enabled bit Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure

Indica se la tabella è abilitata per l'estensione.

0 = La tabella non è abilitata per l'estensione.

1 = La tabella è abilitata per l'estensione.

Per ulteriori informazioni, vedere Stretch Database.
is_external bit Si applica a: SQL Server 2016 (13.x) e versioni successive, database SQL di Azuree Azure Synapse Analytics.

Indica che la tabella è una tabella esterna.

0 = La tabella non è una tabella esterna.

1 = La tabella è una tabella esterna.
history_retention_period int Si applica a: database SQL di Azure.

Valore numerico che rappresenta la durata del periodo di memorizzazione della cronologia temporale in unità specificate con history_retention_period_unit.
history_retention_period_unit int Si applica a: database SQL di Azure.

Valore numerico che rappresenta il tipo di unità del periodo di memorizzazione della cronologia temporale.

-1: INFINITE

3: GIORNO

4: SETTIMANA

5: MONTH

6: YEAR
history_retention_period_unit_desc nvarchar(10) Si applica a: database SQL di Azure.

Descrizione testuale del tipo di unità del periodo di memorizzazione della cronologia temporale.

INFINITE

DAY

WEEK

MONTH

YEAR
is_node bit Si applica a: SQL Server 2017 (14.x) e database SQL di Azure.

1 = Tabella del nodo del grafo.

0 = Non si tratta di una tabella del nodo del grafo.
is_edge bit Si applica a: database SQL di Azure.

1 = Tabella edge del grafo.

0 = Non si tratta di una tabella edge del grafo.
ledger_type tinyint Si applica a: database SQL di Azure.

Il valore numerico indica se la tabella è una tabella del libro mastro.

0 = NON_LEDGER_TABLE
1 = HISTORY_TABLE (associato a una tabella del libro mastro aggiornabile)
2 = UPDATABLE_LEDGER_TABLE
3 = APPEND_ONLY_LEDGER_TABLE

Per altre informazioni sul libro mastro del database, database SQL di Azure libro mastro.
ledger_type_desc nvarchar(60) Si applica a: database SQL di Azure.

Descrizione testuale di un valore nella ledger_type seguente:

NON_LEDGER_TABLE
HISTORY_TABLE
UPDATABLE_LEDGER_TABLE
APPEND_ONLY_LEDGER_TABLE
ledger_view_id int Si applica a: database SQL di Azure.

Quando ledger_type IN (2,3) restituisce object_id della visualizzazione del libro mastro, in caso contrario restituisce NULL.
is_dropped_ledger_table bit Si applica a: database SQL di Azure.

Indica una tabella del libro mastro che è stata eliminata.

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.

Esempio

Nell'esempio seguente vengono restituite tutte le tabelle utente che non dispongono di una chiave primaria.

SELECT SCHEMA_NAME(schema_id) AS schema_name  
    ,name AS table_name   
FROM sys.tables   
WHERE OBJECTPROPERTY(object_id,'TableHasPrimaryKey') = 0  
ORDER BY schema_name, table_name;  
GO  
  

L'esempio seguente illustra come è possibile esporre i dati temporali correlati.

SI APPLICA A: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure.

SELECT T1.object_id, T1.name as TemporalTableName, SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema,  
T2.name as HistoryTableName, SCHEMA_NAME(T2.schema_id) AS HistoryTableSchema,  
T1.temporal_type_desc  
FROM sys.tables T1  
LEFT JOIN sys.tables T2   
ON T1.history_table_id = T2.object_id  
ORDER BY T1.temporal_type desc  

L'esempio seguente illustra come è possibile esporre le informazioni sulla conservazione della cronologia temporale.

Si applica a: database SQL di Azure.

SELECT DB.is_temporal_history_retention_enabled, SCHEMA_NAME(T1.schema_id) AS TemporalTableSchema, 
T1.name as TemporalTableName, SCHEMA_NAME(T2.schema_id) AS HistoryTableSchema, T2.name as HistoryTableName,
T1.history_retention_period, T1.history_retention_period_unit_desc
FROM sys.tables T1  
OUTER APPLY (select is_temporal_history_retention_enabled from sys.databases where name = DB_NAME()) DB
LEFT JOIN sys.tables T2   
ON T1.history_table_id = T2.object_id WHERE T1.temporal_type = 2 

Vedere anche

Viste del catalogo dell'oggetto (Transact-SQL)
Viste del catalogo (Transact-SQL)
DBCC CHECKDB (Transact-SQL)
DBCC CHECKTABLE (Transact-SQL)
Domande frequenti sull'SQL Server di sistema
OLTP in memoria (ottimizzazione per la memoria)