Génération d'objets de base de données à l'aide de l'intégration du CLR (Common Language Runtime)

Vous pouvez générer des objets de base de données à l'aide de l'intégration de SQL Server avec le CLR (Common Language Runtime) .NET Framework. Le code managé qui s'exécute au sein de Microsoft SQL Server est appelé « routine CLR ». Ces routines incluent :

  • Fonctions scalaires définies par l'utilisateur (fonctions UDF scalaires)

  • Fonctions table définies par l'utilisateur (TVF)

  • Procédures définies par l'utilisateur (UDP)

  • Déclencheurs définis par l'utilisateur

Les routines CLR ont la même structure en code managé. Elles sont mappées à des méthodes statiques publiques (partagées dans Microsoft Visual Basic .NET) d'une classe. Outre les routines, les types définis par l'utilisateur (UDT) et les fonctions d'agrégation définies par l'utilisateur peuvent également être définies à l'aide du .NET Framework. Les types UDT et les agrégats définis par l'utilisateur sont mappés à des classes .NET Framework entières.

Chaque type de routine .NET Framework possède une déclaration Transact-SQL et peut être utilisé partout dans SQL Server où l'équivalent Transact-SQL peut être utilisé. Par exemple, les fonctions UDF scalaires peuvent être utilisées dans toute expression scalaire. Une fonction TVF peut être utilisée dans toute clause FROM. Une procédure peut être appelée dans une instruction EXEC ou à partir d'une application cliente.

Notes

L'exécution d'un objet CLR (fonction définie par l'utilisateur, type défini par l'utilisateur ou déclencheur) sur le Common Language Runtime peut concerner plusieurs threads (plan parallèle), si l'optimiseur de requêtes décide que cela est nécessaire. Toutefois, si une fonction définie par l'utilisateur accède aux données, l'exécution se fera sur un plan en série. En cas d'exécution sur une version serveur antérieure à SQL Server 2008, si une fonction définie par l'utilisateur contient des paramètres LOB ou des valeurs de retour, l'exécution doit également se faire sur un plan en série. Pour plus d'informations, consultez Traitement de requêtes en parallèle.

Notez que Visual Studio .NET 2003 ne peut pas être utilisé pour la programmation de l'intégration du CLR. SQL Server inclut le .NET Framework préinstallé et Visual Studio .NET 2003 ne peut pas utiliser les assemblys .NET Framework 2.0.

Le tableau ci-dessous répertorie les rubriques traitées dans cette section.