sys.columns (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Retourne une ligne pour chaque colonne d'un objet comportant des colonnes, telles que des vues ou des tables. Voici une liste de types d'objet comportant des colonnes :

  • Fonctions table d'assembly (FT)

  • Fonctions table inline SQL (IF)

  • Tables internes (IT)

  • Tables système (S)

  • Fonctions table SQL (TF)

  • Tables utilisateur

  • Vues (V)

Nom de la colonne Type de données Description
object_id int Identificateur de l'objet auquel appartient cette colonne.
name sysname Nom de la colonne. Unique dans l'objet.
column_id int Identificateur de la colonne. Unique dans l'objet.

Les ID de colonnes peuvent ne pas être séquentiels.
system_type_id tinyint ID du type de système de la colonne.
user_type_id int ID du type de colonne tel que défini par l'utilisateur.

Pour retourner le nom du type, établissez une jointure à l'affichage de catalogue sys.types sur cette colonne.
max_length smallint Longueur maximale (en octets) de la colonne.

-1 = le type de données de colonne est varchar(max), nvarchar(max), varbinary(max) ou xml.

Pour les colonnes texte, ntext et image , la valeur max_length sera de 16 (représentant le pointeur de 16 octets uniquement) ou la valeur définie par sp_tableoption 'texte en ligne'.
précision tinyint Précision de la colonne si elle est numérique ; sinon, 0.
scale tinyint Échelle de la colonne si elle est numérique ; sinon, la valeur est 0.
collation_name sysname Nom du classement de la colonne si elle est basée sur des caractères ; sinon, NULL.
is_nullable bit 1 = La colonne accepte les valeurs NULL.
is_ansi_padded bit 1 = La colonne utilise le comportement ANSI_PADDING ON si elle est de type caractère, binaire ou variant.

0 = La colonne n'est pas de type caractère, binaire ou variant.
is_rowguidcol bit 1 = La colonne est un ROWGUIDCOL déclaré.
is_identity bit 1 = La colonne a des valeurs d'identité.
is_computed bit 1 = La colonne est calculée.
is_filestream bit 1 = La colonne est une colonne FILESTREAM.
is_replicated bit 1 = La colonne est répliquée.
is_non_sql_subscribed bit 1 = La colonne a un abonné autre que SQL Server.
is_merge_published bit 1 = La colonne est associée à une publication fusionnée.
is_dts_replicated bit 1 = la colonne est répliquée à l'aide de SSIS.
is_xml_document bit 1 = Le contenu est un document XML complet.

0 = le contenu est un fragment de document ou le type de données de la colonne n’est pas xml.
xml_collection_id int Différent de zéro si le type de données de la colonne est xml et que le XML est saisi. La valeur correspondra à l'ID de la collection qui contient l'espace de noms de schéma XML de validation de la colonne.

0 = Aucune collection de schéma XML.
default_object_id int ID de l'objet par défaut, qu'il s’agisse d’un objet autonome sys.sp_bindefault ou d’une contrainte DEFAULT inlined au niveau des colonnes. La colonne parent_object_id d'un objet inline par défaut de niveau colonne est une référence à la table elle-même.

0 = Aucune valeur par défaut.
rule_object_id int ID de la règle autonome liée à la colonne à l'aide de sys.sp_bindrule.

0 = Aucune règle autonome. Pour connaître les contraintes CHECK au niveau des colonnes, consultez sys.check_constraints (Transact-SQL).
is_sparse bit 1 = La colonne est éparse. Pour plus d’informations, consultez Utiliser des colonnes éparses.
is_column_set bit 1 = La colonne est un jeu de colonnes. Pour plus d’informations, consultez Utiliser des colonnes éparses.
generated_always_type tinyint S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database. Seuls 5, 6, 7, 8 s’appliquent à SQL Database.

Identifie quand la valeur de colonne est générée (sera toujours 0 pour les colonnes dans les tables système) :

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END
5 = AS_TRANSACTION_ID_START
6 = AS_TRANSACTION_ID_END
7 = AS_SEQUENCE_NUMBER_START
8 = AS_SEQUENCE_NUMBER_END

Pour plus d’informations, consultez Tables temporelles (bases de données relationnelles).
generated_always_type_desc nvarchar(60) S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

Description textuelle de generated_always_typela valeur (toujours NOT_APPLICABLE pour les colonnes dans les tables système)

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

S’applique à : SQL Serveur à compter de SQL Server 2022 (16.x), SQL Database

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_type int S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

Type de chiffrement :

1 = Chiffrement déterministe

2 = Chiffrement aléatoire
encryption_type_desc nvarchar(64) S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

Description du type de chiffrement :

RANDOMIZED

DETERMINISTIC
encryption_algorithm_name sysname S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

Nom de l’algorithme de chiffrement.

Seul AEAD_AES_256_CBC_HMAC_SHA_512 est pris en charge.
column_encryption_key_id int S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

ID du CEK.
column_encryption_key_database_name sysname S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

Nom de la base de données où la clé de chiffrement de colonne existe si elle est différente de la base de données de la colonne. NULL si la clé existe dans la même base de données que la colonne.
is_hidden bit S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

Indique si la colonne est masquée :

0 = colonne régulière, non masquée, visible

1 = colonne masquée
is_masked bit S’applique à : SQL Server 2016 (13.x) et versions ultérieures, SQL Database.

Indique si la colonne est masquée par un masquage dynamique des données :

0 = colonne régulière non masquée

1 = colonne masquée
graph_type int Colonne interne avec un ensemble de valeurs. Les valeurs sont comprises entre 1 et 8 pour les colonnes de graphiques et NULL pour d’autres.
graph_type_desc nvarchar(60) Colonne interne avec un ensemble de valeurs
is_data_deletion_filter_column bit S’applique à : Azure SQL Edge. Indique si la colonne est celle des filtres de conservation des données pour la table.
ledger_view_column_type tinyint S’applique à : SQL Serveur à compter de SQL Server 2022 (16.x), SQL Database.

Si la valeur n’est pas NULL, indique le type d’une colonne dans un affichage de registre :

1 = TRANSACTION_ID
2 = SEQUENCE_NUMBER
3 = OPERATION_TYPE
4 = OPERATION_TYPE_DESC

Pour plus d’informations sur le registre de bases de données, consultez Registre.
ledger_view_column_type_desc nvarchar(60) S’applique à : SQL Serveur à compter de SQL Server 2022 (16.x), SQL Database.

Si la valeur n’est pas NULL, contient une description textuelle du type de colonne dans un affichage de registre :

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC
is_dropped_ledger_table_column bit S’applique à : SQL Serveur à compter de SQL Server 2022 (16.x), SQL Database.

Indique une colonne de table de registre supprimée.

Autorisations

La visibilité des métadonnées dans les affichages catalogue est limitée aux éléments sécurisables qu’un utilisateur possède ou sur lesquels l’utilisateur a reçu une autorisation. Pour plus d'informations, consultez Metadata Visibility Configuration.

Voir aussi

Vues système (Transact-SQL)
Vues de catalogue d'objets (Transact-SQL)
Affichages catalogue (Transact-SQL)
Questions fréquentes sur l'interrogation des catalogues système de SQL Server
sys.all_columns (Transact-SQL)
sys.system_columns (Transact-SQL)