Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cette rubrique fournit des informations sur les domaines suivants pour vous aider à implémenter et à utiliser des assemblys dans la base de données :
Création d'assemblys
Modification des assemblys
Suppression, désactivation et activation d’assemblys
Gestion des versions d’assembly
Création d’assemblys
Les assemblys sont créés dans SQL Server à l’aide de l’instruction Transact-SQL CREATE ASSEMBLY, ou dans SQL Server Management Studio à l’aide de l’éditeur assisté à l’assembly. En outre, le déploiement d’un projet SQL Server dans Microsoft Visual Studio inscrit un assembly dans la base de données spécifiée pour le projet. Pour plus d’informations, consultez Déploiement d’objets de base de données CLR.
Pour créer un assembly à l’aide de Transact-SQL
Pour créer un assembly à l’aide de SQL Server Management Studio
Modification d’assemblys
Les assemblys sont modifiés dans SQL Server à l’aide de l’instruction Transact-SQL ALTER ASSEMBLY ou dans SQL Server Management Studio à l’aide de l’éditeur assisté par assembly. Vous pouvez modifier un assembly lorsque vous souhaitez effectuer les opérations suivantes :
Changer l'implémentation de l'assembly en chargeant une nouvelle version de ses binaires. Pour plus d’informations, consultez La gestion des versions d’assembly plus loin dans cette rubrique.
Changer le jeu d'autorisations de l'assembly. Pour plus d’informations, consultez Conception d’assemblys.
Modifier la visibilité de l'assembly. Les assemblys visibles sont disponibles pour le référencement dans SQL Server. Les assemblys nonvisibles ne sont pas disponibles, même s’ils ont été chargés dans la base de données. Par défaut, les assemblys chargés sur une instance de SQL Server sont visibles.
Ajouter ou supprimer un fichier de débogage ou source associé avec l'assembly.
Pour modifier un assembly à l’aide de Transact-SQL
Pour modifier un assembly à l’aide de SQL Server Management Studio
Suppression, désactivation et activation d’assemblys
Les assemblys sont supprimés à l’aide de l’instruction Transact-SQL DROP ASSEMBLY ou de SQL Server Management Studio.
Pour supprimer un assembly à l’aide de Transact-SQL
Pour supprimer un assembly à l’aide de SQL Server Management Studio
Par défaut, tous les assemblys créés dans SQL Server sont désactivés à partir de l’exécution. Vous pouvez utiliser l’option clr activée de la procédure stockée système sp_configure pour désactiver ou activer l’exécution de tous les assemblys chargés dans SQL Server. La désactivation de l’exécution d’assembly empêche l’exécution de fonctions CLR (Common Language Runtime), les procédures stockées, les déclencheurs, les agrégats et les types définis par l’utilisateur de s’exécuter, et arrête ceux qui sont en cours d’exécution. La désactivation de l’exécution de l’assembly ne désactive pas la possibilité de créer, de modifier ou de supprimer des assemblys. Pour plus d’informations, consultez l’option de configuration de serveur activée clr.
Pour désactiver et activer l’exécution de l’assembly
Gestion des versions d’assembly
Lorsqu’un assembly est chargé sur une instance SQL Server, l’assembly est stocké et géré dans les catalogues du système de base de données. Toutes les modifications apportées à la définition de l’assembly dans Microsoft .NET Framework doivent être propagées à l’assembly stocké dans le catalogue de bases de données.
Lorsque vous devez modifier un assembly, vous devez émettre une instruction ALTER ASSEMBLY pour mettre à jour l’assembly dans la base de données. Cela met à jour l’assembly vers la dernière copie des modules .NET Framework contenant son implémentation.
La clause WITH UNCHECKED DATA de l’instruction ALTER ASSEMBLY indique à SQL Server d’actualiser même les assemblys sur lesquels les données persistantes dans la base de données dépendent. Plus précisément, vous devez spécifier WITH UNCHECKED DATA si l’un des éléments suivants existe :
Colonnes calculées persistantes qui référencent des méthodes dans l’assembly, directement ou indirectement, via des fonctions ou des méthodes Transact-SQL.
Colonnes d’un type CLR défini par l’utilisateur qui dépendent de l’assembly, et le type implémente un format de sérialisation UserDefined (non natif).
Avertissement
Si WITH UNCHECKED DATA n’est pas spécifié, SQL Server tente d’empêcher l’exécution d’ALTER ASSEMBLY si la nouvelle version d’assembly affecte les données existantes dans les tables, les index ou d’autres sites persistants. Toutefois, SQL Server ne garantit pas que les colonnes calculées, les index, les vues indexées ou les expressions sont cohérents avec les routines et types sous-jacents lorsque l’assembly CLR est mis à jour. Veillez à exécuter ALTER ASSEMBLY pour vous assurer qu’il n’existe aucune incompatibilité entre le résultat d’une expression et une valeur basée sur cette expression stockée dans l’assembly.
Seuls les membres des db_owner et db_ddlowner rôle de base de données fixe peuvent exécuter ALTER ASSEMBLY à l’aide de la clause WITH UNCHECKED DATA.
SQL Server publie un message dans le journal des événements de l’application Windows que l’assembly a été modifié avec des données non vérifiées dans les tables. SQL Server marque ensuite toutes les tables qui contiennent des données dépendantes de l’assembly comme ayant des données non vérifiées. La colonne has_unchecked_assembly_data de l’affichage catalogue sys.tables contient la valeur 1 pour les tables qui contiennent des données non vérifiées et 0 pour les tables sans données non vérifiées.
Pour résoudre l’intégrité des données non vérifiées, exécutez DBCC CHECKTABLE sur chaque table qui a des données non vérifiées. Si DBCC CHECKTABLE échoue, vous devez supprimer les lignes de table qui ne sont pas valides ou modifier le code d’assembly pour résoudre les problèmes, puis émettre des instructions ALTER ASSEMBLY supplémentaires.
ALTER ASSEMBLY modifie la version de l’assembly. La culture et le jeton de clé publique de l’assembly restent les mêmes. SQL Server n’autorise pas l’inscription de différentes versions d’un assembly portant le même nom, la culture et la clé publique.
Interactions avec la stratégie à l’échelle de l’ordinateur pour la liaison de version
Si les références aux assemblys stockés dans SQL Server sont redirigées vers des versions spécifiques à l’aide d’une stratégie d’éditeur ou d’une stratégie d’administrateur à l’échelle de l’ordinateur, vous devez effectuer l’une des opérations suivantes :
Assurez-vous que la nouvelle version vers laquelle s'effectue cette redirection se trouve dans la base de données.
Modifiez les instructions pointant vers les fichiers de stratégie externes de l'ordinateur ou la stratégie du serveur de publication pour vous assurer qu'elles référencent la version spécifique figurant dans la base de données.
Sinon, une tentative de chargement d’une nouvelle version d’assembly sur l’instance de SQL Server échoue.
Pour mettre à jour la version d’un assembly
Voir aussi
Assemblys (moteur de base de données)
Obtention d’informations sur les assemblys