Share via


Modificar un ensamblado

Los ensamblados registrados en SQL Server se pueden actualizar con 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 utilizan el ensamblado; los procesos se siguen ejecutando con el ensamblado sin modificar. ALTER ASSEMBLY no se puede utilizar para cambiar las firmas de funciones de Common Language Runtime (CLR), funciones de agregado, procedimientos almacenados ni desencadenadores. En el ensamblado se pueden agregar nuevos métodos públicos, los métodos privados se pueden modificar de todas las maneras y los métodos públicos se pueden modificar en tanto no se cambien las firmas ni los atributos. Los campos que forman parte de un tipo definido por el usuario de serialización nativa, incluidos los miembros de datos o clases base, no pueden cambiarse mediante ALTER ASSEMBLY. No se admiten otros cambios. Para obtener más información, vea ALTER ASSEMBLY (Transact-SQL).

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 instrucción siguiente cambia el conjunto de permisos del ensamblado 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, se debe crear previamente una clave asimétrica y el inicio de sesión correspondiendo con permiso EXTERNAL ACCESS ASSEMBLY o UNSAFE ASSEMBLY para el ensamblado. Para obtener más información, vea Crear un ensamblado.

Agregar el código fuente de un ensamblado

La cláusula ADD FILE de la sintaxis de ALTER ASSEMBLY no está presente en CREATE ASSEMBLY. Puede utilizarla para agregar código fuente o cualquier otro archivo asociado a un ensamblado. Los archivos se copian de sus ubicaciones originales y se almacenan en tablas del sistema de la base de datos. De esta forma, se garantiza que el código fuente u otros archivos estén disponibles siempre que desee volver a crear o documentar la versión actual del UDT.

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

ALTER ASSEMBLY Point

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