Partager via


Types CLR définis par l'utilisateur

S'applique à : SQL Server

SQL Server vous donne la possibilité de créer des objets de base de données qui sont programmés sur un assembly créé dans le Common Language Runtime (CLR) du .NET Framework. Les objets de base de données pouvant tirer parti du modèle de programmation évolué fourni par le CLR comprennent les déclencheurs, les procédures stockées, les fonctions, les fonctions d'agrégation et les types.

Remarque

La possibilité d’exécuter du code CLR est définie sur OFF par défaut dans SQL Server. Le CLR peut être activé à l’aide de la procédure stockée système sp_configure .

À compter de SQL Server 2005 (9.x), vous pouvez utiliser des types définis par l’utilisateur (UDT) pour étendre le système de type scalaire du serveur, ce qui permet de stocker des objets CLR dans une base de données SQL Server. Les UDT peuvent contenir plusieurs éléments et peuvent avoir des comportements, les différentiant des types de données d’alias traditionnels qui se composent d’un seul type de données système SQL Server.

Les types UDT étant accessibles au système dans son ensemble, leur utilisation pour des types de données complexes peut nuire aux performances. Les données complexes sont généralement mieux modélisées au moyen de lignes et de tables traditionnelles. Les UDT dans SQL Server conviennent parfaitement aux éléments suivants :

  • Date, heure, devise et types numériques étendus

  • Applications géographiques

  • Données encodées ou chiffrées

Le processus de développement d’UDT dans SQL Server se compose des étapes suivantes :

  1. Codez et générez l’assembly qui définit l’UDT. Les UDT sont définis à l’aide de l’une des langues prises en charge par the.NET Common Language Runtime (CLR) du Framework qui produisent du code vérifiable. notamment Visual C# et Visual Basic .NET. Les données sont exposées en tant que champs et propriétés d'une classe ou d'une structure .NET Framework, et les comportements sont définis par des méthodes de la classe ou de la structure.

  2. Inscrire l’assembly . Les UDT peuvent être déployés via l’interface utilisateur de Visual Studio dans un projet de base de données ou à l’aide de l’instruction Transact-SQL CREATE ASSEMBLY, qui copie l’assembly contenant la classe ou la structure dans une base de données.

  3. Créez l’UDT dans SQL Server. Une fois qu’un assembly est chargé dans une base de données hôte, vous utilisez l’instruction Transact-SQL CREATE TYPE pour créer un UDT et exposer les membres de la classe ou de la structure en tant que membres de l’UDT. Les types UDT existent uniquement dans le contexte d'une base de données unique et, une fois inscrits, n'ont pas de dépendances vis-à-vis des fichiers externes à partir desquels ils ont été créés.

    Remarque

    Avant SQL Server 2005 (9.x), les UDT créés à partir d’assemblys .NET Framework n’ont pas été pris en charge. Toutefois, vous pouvez toujours utiliser des types de données d’alias SQL Server à l’aide de sp_addtype. La syntaxe CREATE TYPE peut être utilisée pour créer des types de données sql Server natifs définis par l’utilisateur et des UDT.

  4. Créez des tables, des variables ou des paramètres à l’aide de l’UDT à partir de SQL Server 2005 (9.x), un type défini par l’utilisateur peut être utilisé comme définition de colonne d’une table, comme variable dans un lot Transact-SQL, ou comme argument d’une fonction Transact-SQL ou d’une procédure stockée.

Dans cette section

Création d’un type défini par l’utilisateur
Décrit comment créer des types UDT.

Inscription de types définis par l’utilisateur dans SQL Server
Décrit comment inscrire et gérer des UDT dans SQL Server.

Utilisation de types définis par l’utilisateur dans SQL Server
Décrit comment créer des requêtes à l'aide de types UDT.

Accès aux types définis par l’utilisateur dans ADO.NET
Décrit comment utiliser des UDT à l’aide de l’Fournisseur de données .NET Framework pour SQL Server dans ADO.NET.