Compartilhar via


Alterar um assembly

Aplica-se:SQL Server

Os assemblies registrados no SQL Server podem ser atualizados de uma versão mais recente usando a instrução ALTER ASSEMBLY. Para atualizar um assembly, use a instrução ALTER ASSEMBLY com a seguinte sintaxe:

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

ALTER ASSEMBLY não interrompe os processos em execução no momento que estão usando o assembly; os processos continuam em execução com o assembly sem alterações. ALTER ASSEMBLY não pode ser usado para alterar as assinaturas de funções CLR (Common Language Runtime), funções de agregação, procedimentos armazenados e gatilhos. Você pode adicionar novos métodos públicos ao assembly, os métodos privados podem ser modificados de qualquer forma e os métodos públicos podem ser modificados desde que assinaturas ou atributos não sejam alterados. Os campos contidos em um tipo definido pelo usuário serializado nativo, incluindo membros de dados ou classes base, não podem ser alterados usando ALTER ASSEMBLY. Não é oferecido suporte a todas as demais alterações. Para obter mais informações, consulte ALTER ASSEMBLY.

Alterar o conjunto de permissões de um assembly

O conjunto de permissões de um assembly também pode ser alterado usando a instrução ALTER ASSEMBLY. A instrução a seguir altera o conjunto de permissões do assembly SQLCLRTest para EXTERNAL_ACCESS.

ALTER ASSEMBLY SQLCLRTest
    WITH PERMISSION_SET = EXTERNAL_ACCESS;

Se o conjunto de permissões de um assembly estiver sendo alterado de SAFE para EXTERNAL_ACCESS ou UNSAFE, uma chave assimétrica e o logon correspondente com permissão EXTERNAL ACCESS ASSEMBLY ou permissão de UNSAFE ASSEMBLY para o assembly deverão primeiro ser criados. Para obter mais informações, consulte Criar um assembly.

Adicionar o código-fonte de um assembly

A cláusula ADD FILE na sintaxe ALTER ASSEMBLY não está presente no CREATE ASSEMBLY. Você pode usá-la para adicionar código-fonte ou outros arquivos associados a um assembly. Os arquivos serão copiados dos seus locais originais e armazenados em tabelas do sistema do banco de dados. Dessa forma, você sempre tem código-fonte ou outros arquivos em mãos caso precise recriar ou documentar a versão atual do UDT (tipo definido pelo usuário).

A instrução a seguir adiciona o código-fonte da classe Point.cs para o Point UDT. Ele copia o texto contido no arquivo Point.cs e o armazena no banco de dados sob o nome PointSource.

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