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 programmés sur un assembly créé dans le ClR (Common Language Runtime) .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.

Notes

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 (UDR) pour étendre le système de type scalaire du serveur, ce qui permet de stockage des objets CLR dans une base de données SQL Server. Les UDT peuvent contenir plusieurs éléments et avoir des comportements les différenciant des types de données alias traditionnels, qui consistent en un unique 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 comprend les étapes suivantes :

  1. Coder et générer l'assembly définissant le type UDT. Les UDT sont définis à l’aide de l’un des langages pris en charge par the.NET Framework Common Language Runtime (CLR) 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éer le type 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 type défini par l’utilisateur 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.

    Notes

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

  4. Créer des tables, des variables ou des paramètres à l’aide de l’UDT À compter 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 ou d’une procédure stockée Transact-SQL.

Dans cette section

Création d’un type User-Defined
Décrit comment créer des types UDT.

Inscription des types définis par l'utilisateur dans SQL Server
Décrit comment inscrire et gérer des types définis par l’utilisateur 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 types définis par l’utilisateur à l’aide du fournisseur de données .NET Framework pour SQL Server dans ADO.NET.