Partager via


Modifier un assembly

S'applique à :SQL Server

Les assemblys 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 ; les processus continuent à s’exécuter avec l’assembly non inchangé. ALTER ASSEMBLY ne peut pas être utilisé pour modifier les signatures des fonctions CLR (Common Language Runtime), les fonctions d’agrégation, les procédures stockées et les déclencheurs. Vous pouvez ajouter de nouvelles méthodes publiques à l’assembly, les méthodes privées peuvent être modifiées de quelque manière que ce soit, et les méthodes publiques peuvent être modifiées tant que les signatures ou les attributs ne sont pas modifiés. Les champs contenus dans un type défini par l’utilisateur sérialisé natif, y compris les membres de données ou les classes de base, ne peuvent pas être modifiés à l’aide de ALTER ASSEMBLY. Aucune autre modification n'est prise en charge. Pour plus d’informations, consultez ALTER ASSEMBLY.

Modifier le 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 est modifié de SAFE à EXTERNAL_ACCESS ou UNSAFE, une clé asymétrique et une connexion correspondante avec EXTERNAL ACCESS ASSEMBLY autorisation ou UNSAFE ASSEMBLY autorisation pour l’assembly doivent d’abord être créées. Pour plus d’informations, consultez Créer un assembly.

Ajouter le code source d’un assembly

La clause ADD FILE dans 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. De cette façon, vous avez toujours du code source ou d’autres fichiers en main si vous devez recréer ou documenter la version actuelle du type défini par l’utilisateur (UDT).

L’instruction suivante ajoute le code source de la classe Point.cs pour l’UDT Point. Il copie le texte contenu dans le fichier Point.cs et le stocke dans la base de données sous le nom PointSource.

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