Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Assemblies que foram registrados no SQL Server usando a instrução CREATE ASSEMBLY podem ser excluídos ou descartados quando a funcionalidade fornecida por eles não for mais necessária. O descarte de um assembly remove o mesmo e todos os seus arquivos associados como, por exemplo, arquivos de depuração, do banco de dados. Para remover um assembly, use a instrução DROP ASSEMBLY com a seguinte sintaxe:
DROP ASSEMBLY MyDotNETAssembly
DROP ASSEMBLY não interfere em nenhum código que referencia o assembly que está em execução no momento, mas após a execução do DROP ASSEMBLY, todas as tentativas de invocar o código do assembly falham.
DROP ASSEMBLY retornará um erro se o assembly for referenciado por outro assembly que existe no banco de dados ou se ele for usado por funções clr (common language runtime), procedimentos, gatilhos, UDTs (tipos definidos pelo usuário) ou UDAs (agregações definidas pelo usuário) no banco de dados atual. Primeiro, use as instruções DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, DROP TRIGGER e DROP TYPE para excluir todos os objetos de banco de dados gerenciados contidos no assembly.
Removendo um UDT do banco de dados
A instrução DROP TYPE remove um UDT do banco de dados atual. Depois que um UDT for removido, você poderá usar a instrução DROP ASSEMBLY para remover o assembly do banco de dados.
A instrução DROP TYPE falhará se os objetos dependerem do UDT, como nas seguintes situações:
Tabelas no banco de dados que contêm colunas definidas usando a UDT.
Funções, procedimentos armazenados ou gatilhos que usam variáveis ou parâmetros do UDT, criados no banco de dados com a cláusula WITH SCHEMABINDING.
Localizando dependências UDT
Primeiro, você deve remover todos os objetos dependentes e, em seguida, executar a instrução DROP TYPE. A consulta Transact-SQL a seguir localiza todas as colunas e parâmetros que usam um UDT no banco de dados AdventureWorks .
USE Adventureworks;
SELECT o.name AS major_name, o.type_desc AS major_type_desc
, c.name AS minor_name, c.type_desc AS minor_type_desc
, at.assembly_class
FROM (
SELECT object_id, name, user_type_id, 'SQL_COLUMN' AS type_desc
FROM sys.columns
UNION ALL
SELECT object_id, name, user_type_id, 'SQL_PROCEDURE_PARAMETER'
FROM sys.parameters
) AS c
JOIN sys.objects AS o
ON o.object_id = c.object_id
JOIN sys.assembly_types AS at
ON at.user_type_id = c.user_type_id;
Consulte Também
Gerenciando assemblies de integração clr
Alterando um assembly
Criando um assembly
DROP AGGREGATE (Transact-SQL)
DROP FUNCTION (Transact-SQL)
DROP PROCEDURE (Transact-SQL)
DROP TRIGGER (Transact-SQL)
DROP TYPE (Transact-SQL)