Définition de tables et de colonnes UDT

Une fois que l'assembly contenant la définition de type défini par l'utilisateur (UDT) a été inscrit dans une base de données Microsoft SQL Server, il peut être utilisé dans une définition de colonne.

Création de tables avec UDT

Il n'existe aucune syntaxe particulière pour la création d'une colonne UDT dans une table. Vous pouvez utiliser le nom de l'UDT dans une définition de colonne comme s'il correspondait à l'un des types de données intrinsèques de SQL Server. L'instruction Transact-SQL CREATE TABLE suivante crée une table nommée Points avec une colonne nommée ID définie en tant que colonne d'identité int et \ comme la clé primaire de la table. La deuxième colonne est nommée PointValue avec un type de données Point. Le nom de schéma utilisé dans cet exemple est dbo. Notez que vous devez disposer des autorisations nécessaires pour spécifier un nom de schéma. Si vous omettez le nom de schéma, le schéma par défaut de l'utilisateur de base de données est utilisé.

CREATE TABLE dbo.Points 
(ID int IDENTITY(1,1) PRIMARY KEY, PointValue Point)

Création d'index sur des colonnes UDT

Il existe deux options pour indexer une colonne UDT :

  • Indexez la valeur complète. Dans ce cas, si le type défini par l'utilisateur est ordonné binaire, vous pouvez créer un index sur la colonne UDT tout entière en utilisant l'instruction Transact-SQL CREATE INDEX.

  • Indexez des expressions UDT. Vous pouvez créer des index dans des colonnes calculées persistantes sur des expressions UDT. L'expression UDT peut être un champ, une méthode ou une propriété d'un UDT. L'expression doit être déterministe et ne doit pas accéder aux données.

Pour plus d'informations, consultez Types CLR définis par l'utilisateur et CREATE INDEX (Transact-SQL).