Compartir vía


Modificar un ensamblado

Se aplica a:SQL Server

Los ensamblados registrados en SQL Server se pueden actualizar desde una versión más reciente mediante la instrucción ALTER ASSEMBLY. Para actualizar un ensamblado, use la instrucción ALTER ASSEMBLY con la sintaxis siguiente:

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

ALTER ASSEMBLY no interrumpe los procesos actualmente en ejecución que usan el ensamblado; los procesos continúan ejecutándose con el ensamblado no modificado. ALTER ASSEMBLY no se puede usar para cambiar las firmas de las funciones de Common Language Runtime (CLR), las funciones de agregado, los procedimientos almacenados y los desencadenadores. Puede agregar nuevos métodos públicos al ensamblado, los métodos privados se pueden modificar de cualquier manera y los métodos públicos se pueden modificar siempre y cuando no se cambien las firmas o los atributos. Los campos contenidos en un tipo definido por el usuario serializado de forma nativa, incluidos los miembros de datos o las clases base, no se pueden cambiar mediante ALTER ASSEMBLY. No se admiten otros cambios. Para obtener más información, vea ALTER ASSEMBLY.

Cambiar el conjunto de permisos de un ensamblado

El conjunto de permisos de un ensamblado también se puede cambiar mediante la instrucción ALTER ASSEMBLY. La siguiente instrucción cambia el conjunto de permisos del ensamblado de SQLCLRTest a EXTERNAL_ACCESS.

ALTER ASSEMBLY SQLCLRTest
    WITH PERMISSION_SET = EXTERNAL_ACCESS;

Si el conjunto de permisos de un ensamblado se cambia de SAFE a EXTERNAL_ACCESS o UNSAFE, primero se debe crear una clave asimétrica y el inicio de sesión correspondiente con EXTERNAL ACCESS ASSEMBLY permiso o UNSAFE ASSEMBLY permiso para el ensamblado. Para obtener más información, vea Crear un ensamblado.

Adición del código fuente de un ensamblado

La cláusula ADD FILE de la sintaxis ALTER ASSEMBLY no está presente en CREATE ASSEMBLY. Puede usarla para agregar código fuente o cualquier otro archivo asociado a un ensamblado. Los archivos se copian desde sus ubicaciones originales y se almacenan en tablas del sistema en la base de datos. De este modo, siempre tiene código fuente u otros archivos en caso de que tenga que volver a crear o documentar la versión actual del tipo definido por el usuario (UDT).

La siguiente instrucción agrega el código fuente de la clase Point.cs para el UDT de Point. Copia el texto contenido en el archivo Point.cs y lo almacena en la base de datos bajo el nombre PointSource.

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