sys.tables (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 tabella utente in un database di SQL Server.
Nome colonna | Tipo di dati | Descrizione |
---|---|---|
<inherited columns> |
Per un elenco di colonne ereditate da questa vista, vedere sys.objects (Transact-SQL).For a list of columns that this view inherits, see 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 = La tabella non contiene dati LOB. |
filestream_data_space_id |
int | ID spazio dati per un filegroup FILESTREAM o uno 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 .sys.tables può essere unito 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 SET ANSI_NULLS ON di database . |
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'ultimo ALTER ASSEMBLY oggetto . Verrà reimpostato su 0 dopo il successivo esito positivo DBCC CHECKDB o DBCC CHECKTABLE . |
text_in_row_limit |
int | Numero minimo di byte consentito per il testo nella riga. 0 = L'opzione Testo nella riga 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 | 1 = la tabella è una tabella FileTable. Per altre informazioni sulle tabelle FileTable, vedere Tabelle FileTable (SQL Server). Si applica a: SQL Server 2012 (11.x) e versioni successive e database SQL di Azure |
is_memory_optimized |
bit | 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. Si applica a: SQL Server 2014 (12.x) e versioni successive e database SQL di Azure. |
durability |
tinyint | Di seguito sono indicati i valori possibili: 0 = SCHEMA_AND_DATA 1 = SCHEMA_ONLY Un valore di 0 è il valore predefinito.Si applica a: SQL Server 2014 (12.x) e versioni successive e database SQL di Azure |
durability_desc |
nvarchar(60) | Di seguito sono indicati i valori possibili:SCHEMA_ONLY SCHEMA_AND_DATA Un valore indica SCHEMA_AND_DATA che la tabella è una tabella durevole in memoria. SCHEMA_AND_DATA è il valore predefinito per le tabelle ottimizzate per la memoria. Un valore SCHEMA_ONLY indica che i dati della tabella non vengono salvati in modo permanente al riavvio del database con oggetti ottimizzati per la memoria.Si applica a: SQL Server 2014 (12.x) e versioni successive e database SQL di Azure |
temporal_type |
tinyint | 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 Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure |
temporal_type_desc |
nvarchar(60) | Descrizione del tipo di tabella:NON_TEMPORAL_TABLE HISTORY_TABLE SYSTEM_VERSIONED_TEMPORAL_TABLE Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure |
history_table_id |
int | Quando temporal_type è o ledger_type è 2 2 , restituisce object_id la tabella che mantiene i dati cronologici per una tabella temporale, in caso contrario restituisce NULL .Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure |
is_remote_data_archive_enabled |
bit | Indica se la tabella è abilitata per Stretch. 0 = La tabella non è abilitata per l'estensione. 1 = La tabella è abilitata per Stretch. Per ulteriori informazioni, vedere Stretch Database. Si applica a: SQL Server 2016 (13.x) e versioni successive e database SQL di Azure |
is_external |
bit | Indica che la tabella è una tabella esterna. 0 = La tabella non è una tabella esterna. 1 = La tabella è una tabella esterna. Si applica a: SQL Server 2016 (13.x) e versioni successive, database SQL di Azure e Azure Synapse Analytics |
history_retention_period |
int | Valore numerico che rappresenta la durata del periodo di conservazione della cronologia temporale in unità specificate con history_retention_period_unit .Si applica a: SQL Server 2017 (14.x) e versioni successive e database SQL di Azure |
history_retention_period_unit |
int | Valore numerico che rappresenta il tipo di unità periodo di conservazione della cronologia temporale. -1: INFINITE 0: SECOND 1: MINUTE 2: HOUR 3: DAY 4: WEEK 5: MONTH 6: YEAR Si applica a: SQL Server 2017 (14.x) e versioni successive e database SQL di Azure |
history_retention_period_unit_desc |
nvarchar(10) | Descrizione del testo del tipo di unità del periodo di conservazione della cronologia temporale.INFINITE SECOND MINUTE HOUR DAY WEEK MONTH YEAR Si applica a: SQL Server 2017 (14.x) e versioni successive e database SQL di Azure |
is_node |
bit | 1 = Tabella dei nodi del grafo. 0 = Non una tabella dei nodi del grafo. Si applica a: SQL Server 2017 (14.x) e versioni successive e database SQL di Azure |
is_edge |
bit | 1 = Tabella dei bordi del grafo. 0 = Non una tabella dei bordi del grafo. Si applica a: SQL Server 2017 (14.x) e versioni successive e database SQL di Azure |
data_retention_period |
int | Valore numerico che rappresenta la durata del periodo di conservazione dei dati in unità specificate con data_retention_period_unit .Si applica a: solo SQL Edge di Azure |
data_retention_period_unit |
int | Valore numerico che rappresenta il tipo di unità del periodo di conservazione dei dati. -1: INFINITE 0: SECOND 1: MINUTE 2: HOUR 3: DAY 4: WEEK 5: MONTH 6: YEAR Si applica a: solo SQL Edge di Azure |
data_retention_period_unit_desc |
nvarchar(10) | Descrizione del testo del tipo di unità del periodo di conservazione dei dati.INFINITE SECOND MINUTE HOUR DAY WEEK MONTH YEAR Si applica a: solo SQL Edge di Azure |
ledger_type |
tinyint | Il valore numerico indica se la tabella è una tabella mastro. 0 = NON_LEDGER_TABLE 1 = HISTORY_TABLE (associato a una tabella mastro aggiornabile)2 = UPDATABLE_LEDGER_TABLE 3 = APPEND_ONLY_LEDGER_TABLE Per altre informazioni sul libro mastro del database, vedere Libro mastro. Si applica a: SQL Server 2022 (16.x) e versioni successive e database SQL di Azure |
ledger_type_desc |
nvarchar(60) | Descrizione testuale di un valore nella ledger_type colonna:NON_LEDGER_TABLE HISTORY_TABLE UPDATABLE_LEDGER_TABLE APPEND_ONLY_LEDGER_TABLE Si applica a: SQL Server 2022 (16.x) e versioni successive e database SQL di Azure |
ledger_view_id |
int | Quando ledger_type IN (2, 3) restituisce object_id la visualizzazione libro mastro, in caso contrario restituisce NULL .Si applica a: SQL Server 2022 (16.x) e versioni successive e database SQL di Azure |
is_dropped_ledger_table |
bit | Indica una tabella libro mastro eliminata. Si applica a: SQL Server 2022 (16.x) e versioni successive e database SQL di Azure |
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
R. Restituire tutte le tabelle utente senza una chiave primaria
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
B. Elencare le tabelle correlate ai dati temporali
Nell'esempio seguente viene illustrato 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;
C. Elencare le informazioni sulla conservazione della cronologia temporale
Nell'esempio seguente viene illustrato come esporre le informazioni sulla conservazione della cronologia temporale.
Si applica a: SQL Server 2017 (14.x) e versioni successive, 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;