Types CLR définis par l'utilisateurCLR User-Defined Types

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure SQL Data Warehouse nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server vous donne la possibilité de créer des objets de base de données qui sont programmées par rapport à un assembly créé dans le common language runtime (CLR) du .NET Framework.gives you the ability to create database objects that are programmed against an assembly created in the .NET Framework common language runtime (CLR). 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.Database objects that can take advantage of the rich programming model provided by the CLR include triggers, stored procedures, functions, aggregate functions, and types.

Notes

La possibilité d’exécuter du code CLR est définie sur OFF par défaut dans SQL ServerSQL Server.The ability to execute CLR code is set to OFF by default in SQL ServerSQL Server. Le CLR peut être activé à l’aide de la sp_configure procédure stockée système.The CLR can be enabled by using the sp_configure system stored procedure.

À partir de SQL Server 2005 (9.x)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, permettant ainsi le stockage d’objets CLR dans un SQL ServerSQL Server base de données.Beginning with SQL Server 2005 (9.x)SQL Server 2005 (9.x), you can use user-defined types (UDTs) to extend the scalar type system of the server, enabling storage of CLR objects in a SQL ServerSQL Server database. Les types UDT peuvent contenir plusieurs éléments et avoir des comportements, ce qui les différencie des types de données alias traditionnels qui se composent d'un seul type de données système SQL ServerSQL Server.UDTs can contain multiple elements and can have behaviors, differentiating them from the traditional alias data types which consist of a single SQL ServerSQL Server system data type.

Les types UDT étant accessibles au système dans son ensemble, leur utilisation pour des types de données complexes peut nuire aux performances.Because UDTs are accessed by the system as a whole, their use for complex data types may negatively impact performance. Les données complexes sont généralement mieux modélisées au moyen de lignes et de tables traditionnelles.Complex data is generally best modeled using traditional rows and tables. Les types UDT dans SQL ServerSQL Server sont bien adaptés aux éléments suivants :UDTs in SQL ServerSQL Server are well suited to the following:

  • Date, heure, devise et types numériques étendusDate, time, currency, and extended numeric types

  • Applications géographiquesGeospatial applications

  • Données encodées ou chiffréesEncoded or encrypted data

Le processus de développement de types UDT dans SQL ServerSQL Server comprend les étapes suivantes :The process of developing UDTs in SQL ServerSQL Server consists of the following steps:

  1. Coder et générer l’assembly qui définit l’UDT.Code and build the assembly that defines the UDT. Les types UDT sont définis à l’aide d’un des langages pris en charge par le.NET Framework common language runtime (CLR) de produisent du code vérifiable.UDTs are defined using any of the languages supported by the.NET Framework common language runtime (CLR) that produce verifiable code. notamment Visual C# et Visual Basic .NET.This includes Visual C# and 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.The data is exposed as fields and properties of a .NET Framework class or structure, and behaviors are defined by methods of the class or structure.

  2. Inscrire l’assembly.Register the assembly. Les types UDT peuvent être déployés par l'intermédiaire de l'interface utilisateur Visual Studio dans un projet de base de données, ou à l'aide de l'instruction Transact-SQLTransact-SQL CREATE ASSEMBLY, qui copie l'assembly contenant la classe ou la structure dans une base de données.UDTs can be deployed through the Visual Studio user interface in a database project, or by using the Transact-SQLTransact-SQL CREATE ASSEMBLY statement, which copies the assembly containing the class or structure into a database.

  3. Créer l’UDT dans SQL Server.Create the UDT in SQL Server. Une fois qu'un assembly est chargé dans une base de données hôte, vous utilisez l'instruction Transact-SQLTransact-SQL CREATE TYPE pour créer un type UDT et exposer les membres de la classe ou de la structure en tant que membres du type UDT.Once an assembly is loaded into a host database, you use the Transact-SQLTransact-SQL CREATE TYPE statement to create a UDT and expose the members of the class or structure as members of the 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.UDTs exist only in the context of a single database, and, once registered, have no dependencies on the external files from which they were created.

    Notes

    Dans les versions antérieures à SQL Server 2005 (9.x)SQL Server 2005 (9.x), les types UDT créés à partir d'assemblys .NET Framework n'étaient pas pris en charge.Before SQL Server 2005 (9.x)SQL Server 2005 (9.x), UDTs created from .NET Framework assemblies were not supported. Toutefois, vous pouvez toujours utiliser SQL ServerSQL Server des types de données alias à l’aide de sp_addtype.However, you can still use SQL ServerSQL Server alias data types by using sp_addtype. La syntaxe CREATE TYPE peut être utilisée pour créer à la fois des types de données définis par l'utilisateur SQL ServerSQL Server natifs et des types UDT.The CREATE TYPE syntax can be used for creating both native SQL ServerSQL Server user-defined data types and UDTs.

  4. Créer des tables, des variables ou des paramètres à l’aide de l’UDT commençant par SQL Server 2005 (9.x)SQL Server 2005 (9.x), un type défini par l’utilisateur peut être utilisé en tant que la définition de colonne d’une table, en tant que variable dans un Transact-SQLTransact-SQL batch, ou en tant qu’argument d’un Transact-SQLTransact-SQL de fonction ou stockées procédure.Create tables, variables, or parameters using the UDT Beginning with SQL Server 2005 (9.x)SQL Server 2005 (9.x), a user-defined type can be used as the column definition of a table, as a variable in a Transact-SQLTransact-SQL batch, or as an argument of a Transact-SQLTransact-SQL function or stored procedure.

Dans cette sectionIn This Section

Création d’un type défini par l’utilisateurCreating a User-Defined Type
Décrit comment créer des types UDT.Describes how to create UDTs.

Inscription de types définis par l’utilisateur dans SQL ServerRegistering User-Defined Types in SQL Server
Décrit comment inscrire et gérer des types UDT dans SQL ServerSQL Server.Describes how to register and manage UDTs in SQL ServerSQL Server.

Utilisation de types définis par l’utilisateur dans SQL ServerWorking with User-Defined Types in SQL Server
Décrit comment créer des requêtes à l'aide de types UDT.Describes how to create queries using UDTs.

Accès aux types définis par l’utilisateur dans ADO.NETAccessing User-Defined Types in ADO.NET
Décrit comment utiliser des types UDT à l'aide du fournisseur de données .NET Framework pour SQL ServerSQL Server dans ADO.NET.Describes how to work with UDTs using the .NET Framework Data Provider for SQL ServerSQL Server in ADO.NET.