sys.tables (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
Retourne une ligne pour chaque table utilisateur dans une base de données SQL Server.
Nom de la colonne | Type de données | Description |
---|---|---|
<inherited columns> |
Pour obtenir une liste de colonnes héritées par cet affichage, consultez sys.objects (Transact-SQL). | |
lob_data_space_id |
int | Une valeur différente de zéro représente l'ID d'espace de données (groupe de fichiers ou schéma de partition) qui contient les données d'objet binaire volumineux (LOB) de cette table. Des exemples de types de données d’application métier incluent varbinary(max), varchar(max), geography ou xml. 0 = la table n’a pas de données d’application métier. |
filestream_data_space_id |
int | ID d’espace de données pour un groupe de fichiers FILESTREAM ou un schéma de partition qui se compose de groupes de fichiers FILESTREAM. Pour signaler le nom d'un groupe de fichiers FILESTREAM, exécutez la requête SELECT FILEGROUP_NAME (filestream_data_space_id) FROM sys.tables .sys.tables peut être joint aux vues suivantes sur 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 (joindre sur filegroup_id ) |
max_column_id_used |
int | ID de colonne maximum utilisé à ce jour par cette table. |
lock_on_bulk_load |
bit | La table est verrouillée pour le chargement en masse. Pour plus d’informations, consultez sp_tableoption (Transact-SQL). |
uses_ansi_nulls |
bit | La table a été créée avec l’option SET ANSI_NULLS ON de base de données . |
is_replicated |
bit | 1 = la table est publiée à l'aide de la réplication d'instantané ou de la réplication transactionnelle. |
has_replication_filter |
bit | 1 = la table possède un filtre de réplication. |
is_merge_published |
bit | 1 = la table est publiée à l'aide de la réplication de fusion. |
is_sync_tran_subscribed |
bit | 1 = la table est abonnée à l'aide d'un abonnement avec mise à jour immédiate. |
has_unchecked_assembly_data |
bit | 1 = La table contient des données persistantes qui dépendent d’un assembly dont la définition a changé au cours du dernier ALTER ASSEMBLY . Sera réinitialisé à 0 après la réussite DBCC CHECKDB ou DBCC CHECKTABLE . |
text_in_row_limit |
int | Taille maximale en octets du texte de la ligne. 0 = l'option « text in row » n'est pas définie. Pour plus d’informations, consultez sp_tableoption (Transact-SQL). |
large_value_types_out_of_row |
bit | 1 = les types de valeur élevée sont stockés en dehors de la ligne. Pour plus d’informations, consultez sp_tableoption (Transact-SQL). |
is_tracked_by_cdc |
bit | 1 = la table est activée pour la capture des données modifiées. Pour plus d’informations, consultez sys.sp_cdc_enable_db (Transact-SQL). |
lock_escalation |
tinyint | Valeur de l’option pour la LOCK_ESCALATION table :0 = TABLE 1 = DISABLE 2 = AUTO |
lock_escalation_desc |
nvarchar(60) | Description textuelle de l'option lock_escalation pour la table. Les valeurs possibles sont : TABLE , AUTO et DISABLE . |
is_filetable |
bit | 1 = La table est un FileTable. Pour plus d’informations sur les FileTables, consultez FileTables (SQL Server). S’applique à : SQL Server 2012 (11.x) et versions ultérieures, et Azure SQL Database |
is_memory_optimized |
bit | Les valeurs possibles sont les suivantes : 0 = Non optimisé en mémoire. 1 = optimisé en mémoire. La valeur 0 est la valeur par défaut. Les tables à mémoire optimisées sont des tables utilisateur en mémoire dont le schéma est rendu persistant sur disque, comme d'autres tables utilisateur. Les tables optimisées en mémoire sont accessibles à partir des procédures stockées compilées en mode natif. S’applique à : SQL Server 2014 (12.x) et versions ultérieures, et Azure SQL Database. |
durability |
tinyint | Les valeurs possibles sont les suivantes : 0 = SCHEMA_AND_DATA 1 = SCHEMA_ONLY Une valeur est 0 la valeur par défaut.S’applique à : SQL Server 2014 (12.x) et versions ultérieures, et Azure SQL Database |
durability_desc |
nvarchar(60) | Les valeurs possibles sont les suivantes :SCHEMA_ONLY SCHEMA_AND_DATA Une valeur indiquant SCHEMA_AND_DATA que la table est une table durable en mémoire. SCHEMA_AND_DATA est la valeur par défaut pour les tables mémoire optimisées. Une valeur indiquant que les données de SCHEMA_ONLY table ne sont pas conservées lors du redémarrage de la base de données avec des objets mémoire optimisés.S’applique à : SQL Server 2014 (12.x) et versions ultérieures, et Azure SQL Database |
temporal_type |
tinyint | Valeur numérique représentant le type de table : 0 = NON_TEMPORAL_TABLE 1 = HISTORY_TABLE (associé à une table temporelle)2 = SYSTEM_VERSIONED_TEMPORAL_TABLE S’applique à : SQL Server 2016 (13.x) et versions ultérieures, et Azure SQL Database |
temporal_type_desc |
nvarchar(60) | Description textuelle du type de tableau :NON_TEMPORAL_TABLE HISTORY_TABLE SYSTEM_VERSIONED_TEMPORAL_TABLE S’applique à : SQL Server 2016 (13.x) et versions ultérieures, et Azure SQL Database |
history_table_id |
int | Quand temporal_type est ou ledger_type est2 2 , les retours object_id de la table qui conservent des données historiques pour une table temporelle, sinon retourne NULL .S’applique à : SQL Server 2016 (13.x) et versions ultérieures, et Azure SQL Database |
is_remote_data_archive_enabled |
bit | Indique si la table est déjà activée par Stretch. 0 = La table n’est pas activée par Stretch. 1 = La table est activée par Stretch. Pour plus d'informations, consultez Stretch Database. S’applique à : SQL Server 2016 (13.x) et versions ultérieures, et Azure SQL Database |
is_external |
bit | Indique que la table est externe. 0 = la table n’est pas externe. 1 = la table est externe. S’applique à : SQL Server 2016 (13.x) et versions ultérieures, Azure SQL Database et Azure Synapse Analytics |
history_retention_period |
int | Valeur numérique représentant la durée de la période de rétention de l’historique temporel en unités spécifiées avec history_retention_period_unit .S’applique à : SQL Server 2017 (14.x) et versions ultérieures, et Azure SQL Database |
history_retention_period_unit |
int | Valeur numérique représentant le type d’unité de durée de rétention de l’historique temporel. -1: INFINITE 0: SECOND 1: MINUTE 2: HOUR 3: DAY 4: WEEK 5: MONTH 6: YEAR S’applique à : SQL Server 2017 (14.x) et versions ultérieures, et Azure SQL Database |
history_retention_period_unit_desc |
nvarchar(10) | Description textuelle du type d’unité de période de rétention de l’historique temporel.INFINITE SECOND MINUTE HOUR DAY WEEK MONTH YEAR S’applique à : SQL Server 2017 (14.x) et versions ultérieures, et Azure SQL Database |
is_node |
bit | 1 = Table de nœuds graphes. 0 = Pas une table de nœuds de graphe. S’applique à : SQL Server 2017 (14.x) et versions ultérieures, et Azure SQL Database |
is_edge |
bit | 1 = Tableau de bord du graphique. 0 = Pas une table de bord de graphe. S’applique à : SQL Server 2017 (14.x) et versions ultérieures, et Azure SQL Database |
data_retention_period |
int | Valeur numérique représentant la durée de la période de rétention des données en unités spécifiées avec data_retention_period_unit .S’applique à : Azure SQL Edge uniquement |
data_retention_period_unit |
int | Valeur numérique représentant le type d’unité de période de rétention des données. -1: INFINITE 0: SECOND 1: MINUTE 2: HOUR 3: DAY 4: WEEK 5: MONTH 6: YEAR S’applique à : Azure SQL Edge uniquement |
data_retention_period_unit_desc |
nvarchar(10) | Description textuelle du type d’unité de période de rétention des données.INFINITE SECOND MINUTE HOUR DAY WEEK MONTH YEAR S’applique à : Azure SQL Edge uniquement |
ledger_type |
tinyint | La valeur numérique indique si la table est une table de registre. 0 = NON_LEDGER_TABLE 1 = HISTORY_TABLE (associé à une table de registre pouvant être mise à jour)2 = UPDATABLE_LEDGER_TABLE 3 = APPEND_ONLY_LEDGER_TABLE Pour plus d’informations sur le registre de bases de données, consultez Registre. S’applique à : SQL Server 2022 (16.x) et versions ultérieures, et Azure SQL Database |
ledger_type_desc |
nvarchar(60) | Description textuelle d’une valeur dans la ledger_type colonne :NON_LEDGER_TABLE HISTORY_TABLE UPDATABLE_LEDGER_TABLE APPEND_ONLY_LEDGER_TABLE S’applique à : SQL Server 2022 (16.x) et versions ultérieures, et Azure SQL Database |
ledger_view_id |
int | Lorsque ledger_type IN (2, 3) l’affichage du registre est retourné object_id , sinon, retourne NULL .S’applique à : SQL Server 2022 (16.x) et versions ultérieures, et Azure SQL Database |
is_dropped_ledger_table |
bit | Indique une table de registre supprimée. S’applique à : SQL Server 2022 (16.x) et versions ultérieures, et Azure SQL Database |
autorisations
La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu'un utilisateur détient ou pour lesquels des autorisations lui ont été accordées. Pour plus d'informations, consultez Metadata Visibility Configuration.
Exemples
R. Retourner toutes les tables utilisateur sans clé primaire
L'exemple suivant retourne toutes les tables utilisateur qui ne possèdent pas de clé primaire.
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. Répertorier les tables liées aux données temporelles
L’exemple suivant montre comment les données temporelles associées peuvent être exposées.
S’applique à : SQL Server 2016 (13.x) et versions ultérieures, et Azure SQL Database.
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. Répertorier les informations sur la rétention de l’historique temporel
L’exemple suivant montre comment les informations sur la rétention de l’historique temporel peuvent être exposées.
S’applique à : SQL Server 2017 (14.x) et versions ultérieures, et Azure SQL Database.
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;