Modification d'un assembly

S’applique à :SQL Server

Les assemblys qui ont été inscrits dans SQL Server peuvent être mis à jour à partir d’une version plus récente à l’aide de l’instruction ALTER ASSEMBLY. Pour mettre à jour un assembly, utilisez l'instruction ALTER ASSEMBLY avec la syntaxe suivante :

ALTER ASSEMBLY SQLCLRTest  
FROM 'C:\MyDBApp\SQLCLRTest.dll'  

ALTER ASSEMBLY n'interrompt pas les processus en cours d'exécution qui utilisent l'assembly ; ces processus continuent à s'exécuter avec l'assembly non modifié. ALTER ASSEMBLY ne peut pas être utilisé pour modifier les signatures des fonctions CLR (Common Language Runtime), des fonctions d'agrégation, des procédures stockées et des déclencheurs. De nouvelles méthodes publiques peuvent être ajoutées à l'assembly, les méthodes privées peuvent être modifiées librement ; par ailleurs, les méthodes publiques peuvent être modifiées à condition que les signatures ou les attributs ne soient pas modifiés. Les champs qui se trouvent dans un type défini par l'utilisateur sérialisé de façon native (notamment les membres de données ou les classes de base) ne peuvent pas être modifiés via ALTER ASSEMBLY. Aucune autre modification n'est prise en charge. Pour plus d’informations, consultez ALTER ASSEMBLY (Transact-SQL).

Modification du jeu d'autorisations d'un assembly

Le jeu d'autorisations d'un assembly peut également être modifié à l'aide de l'instruction ALTER ASSEMBLY. L’instruction suivante modifie le jeu d’autorisations de l’assembly SQLCLRTest en EXTERNAL_ACCESS.

ALTER ASSEMBLY SQLCLRTest  
WITH PERMISSION_SET = EXTERNAL_ACCESS   

Si le jeu d’autorisations d’un assembly passe de SAFE à EXTERNAL_ACCESS ou UNSAFE, une clé asymétrique et une connexion correspondante avec l’autorisation EXTERNAL ACCESS ASSEMBLY ou l’autorisation UNSAFE ASSEMBLY pour l’assembly doivent d’abord être créées. Pour plus d’informations, consultez Creating an Assembly.

Ajout du code source d'un assembly

La clause ADD FILE de la syntaxe ALTER ASSEMBLY n'est pas présente dans CREATE ASSEMBLY. Vous pouvez l'utiliser pour ajouter le code source ou tout autre fichier associé à un assembly. Les fichiers sont copiés depuis leur emplacement d'origine et stockés dans les tables système de la base de données. Le code source et autres fichiers est toujours à portée de main dans l'éventualité où vous deviez recréer ou documenter la version actuelle de l'UDT.

L'instruction suivante ajoute le code source de la classe Point.cs pour le type défini par l'utilisateur Point. Le texte contenu dans le fichier Point.cs est alors copié et stocké dans la base de données sous le nom PointSource.

ALTER ASSEMBLY Point

ADD FILE FROM 'C:\Projects\Point\Point.cs' AS PointSource

Voir aussi

Gestion des assemblys d'intégration du CLR
Création d'un assembly
Suppression d'un assembly
ALTER ASSEMBLY (Transact-SQL)