Bibliothèques .NET Framework prises en charge

Avec le CLR (Common Language Runtime) hébergé dans SQL Server, vous pouvez créer des procédures stockées, des déclencheurs, des fonctions définies par l'utilisateur, des types définis par l'utilisateur et des agrégats définis par l'utilisateur en code managé. Avec les fonctionnalités présentes dans les bibliothèques de classes .NET Framework, vous avez accès à des classes prégénérées qui fournissent des fonctionnalités pour la manipulation de chaînes, des opérations de mathématique avancées, l'accès au fichier, le chiffrement, etc. Ces classes sont accessibles à partir de procédures stockées managées, de types définis par l'utilisateur, de déclencheurs, de fonctions définies par l'utilisateur ou d'agrégats définis par l'utilisateur, quels qu'ils soient.

[!REMARQUE]

Si vous effectuez la maintenance ou mettez à niveau des assemblys non pris en charge dans le Global Assembly Cache (GAC), votre application SQL Server peut cesser de fonctionner. Cela est dû au fait que la maintenance ou la mise à niveau de bibliothèques dans le GAC ne met pas à jour ces assemblys à l'intérieur de SQL Server. Si un assembly existe dans une base de données SQL Server et dans le GAC, les deux copies de l'assembly doivent être exactement les mêmes. Si ce n'est pas le cas, une erreur se produira lorsque l'assembly est utilisé par l'intégration du CLR SQL Server. Si vous effectuez la maintenance ou mettez à niveau des assemblys dans le GAC qui sont également inscrits dans la base de données, y compris des assemblys .NET Framework non pris en charge, veillez également à effectuer la maintenance ou à mettre à niveau la copie de l'assembly à l'intérieur de vos bases de données SQL Server avec l'instruction ALTER ASSEMBLY Pour plus d'informations, consultez l'article 949080 de la Base de connaissances.

Bibliothèques prises en charge

À compter de SQL Server 2005, SQL Server prend en charge une liste de bibliothèques .NET Framework qui ont été testées pour vérifier qu'elles répondent aux normes de fiabilité et de sécurité en matière d'interaction avec SQL Server. Vous n'avez pas besoin d'inscrire explicitement les bibliothèques prises en charge sur le serveur avant de pouvoir les utiliser dans votre code ; SQL Server les charge directement à partir du Global Assembly Cache (GAC).

Les bibliothèques/espaces de noms pris en charge par l'intégration du CLR dans SQL Server sont les suivants :

  • CustomMarshalers

  • Microsoft.VisualBasic

  • Microsoft.VisualC

  • mscorlib

  • System

  • System.Configuration

  • System.Data

  • System.Data.OracleClient

  • System.Data.SqlXml

  • System.Deployment

  • System.Security

  • System.Transactions

  • System.Web.Services

  • System.Xml

  • System.Core.dll

  • System.Xml.Linq.dll

Bibliothèques non prises en charge

Il est toujours possible d'appeler des bibliothèques non prises en charge à partir de vos procédures stockées managées, déclencheurs, fonctions définies par l'utilisateur, types définis par l'utilisateur et agrégats définis par l'utilisateur. Vous devez d'abord inscrire la bibliothèque non prise en charge dans la base de données SQL Server à l'aide de l'instruction CREATE ASSEMBLY avant de pouvoir l'utiliser dans votre code. Toute bibliothèque non prise en charge qui est inscrite et exécutée sur le serveur doit être examinée et testée en termes de sécurité et de fiabilité.

Par exemple, l'espace de noms System.DirectoryServices n'est pas pris en charge. Vous devez inscrire l'assembly System.DirectoryServices.dll avec les autorisations UNSAFE avant de pouvoir l'appeler de votre code. L'autorisation UNSAFE est nécessaire parce que les classes dans l'espace de noms System.DirectoryServices ne répondent pas aux conditions requises par SAFE ou EXTERNAL_ACCESS. Pour plus d'informations, consultez Restrictions du modèle de programmation de l'intégration du CLR et Sécurité d'accès du code de l'intégration du CLR.