Partager via


sys.types (Transact-SQL)

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

Contient une ligne par type système et par type défini par l'utilisateur.

Nom de la colonne Type de données Description
name sysname Nom du type. Est unique dans le schéma.
system_type_id tinyint ID du type de système interne.
user_type_id int ID du type. Unique dans la base de données.

Les types d’assembly CLR tels que hierarchyid, geometry et geography auront un autre system_type_idtype et peuvent être identifiés à l’aide is_assembly_typede . Le type de données sysname est un type de données interne basé sur nvarchar.
schema_id int Identificateur du schéma auquel appartient le type.
principal_id int ID du propriétaire spécifique s'il diffère du propriétaire du schéma. Par défaut, le propriétaire du schéma détient les objets contenus dans le schéma. Cependant, il est possible de spécifier un autre propriétaire à l'aide de l'instruction ALTER AUTHORIZATION qui permet de changer de propriétaire.

NULL s’il n’existe aucun autre propriétaire individuel.
max_length smallint Longueur maximale (en octets) du type.

- 1 = Le type de données de colonne est varchar(max), nvarchar(max), varbinary(max)ou xml.
Pour les colonnes de texte , la max_length valeur est 16.
precision tinyint Précision maximale du type s'il est basé sur un nombre ; sinon, 0.
scale tinyint Échelle maximale du type s'il est de type numérique ; sinon, 0.
collation_name sysname Nom du classement du type s’il est basé sur des caractères ; d’autres sages, NULL.
is_nullable bit Le type accepte les valeurs NULL.
is_user_defined bit 1 = Type défini par l’utilisateur.

0 = type de données système SQL Server.
is_assembly_type bit 1 = Implémentation du type est définie dans un assembly CLR.

0 = Le type est basé sur un type de données système SQL Server.
default_object_id int ID de la valeur par défaut autonome liée au type à l’aide de sp_bindefault.

0 = Aucune valeur par défaut n’existe.
rule_object_id int ID de la règle autonome liée au type à l’aide de sp_bindrule.

0 = Aucune règle n’existe.
is_table_type bit Indique que le type est une table.

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 d'utilisation

Obtenir les détails de colonne d’une table

Pour obtenir des métadonnées pour les colonnes d’une table, vous pouvez utiliser le code suivant :

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');