Usunięcie wirtualny plik dziennika
Zestawy, które zostały zarejestrowane w SQL Server za pomocą tworzenia wirtualny plik dziennika instrukcja może być usunięty lub usunięty, gdy nie jest potrzebna funkcjonalność zapewniają. Usunięcie wirtualny plik dziennika usuwa wirtualny plik dziennika i wszystkie skojarzone pliki, takie jak pliki debugowania, z bazy danych.Aby usunąć wirtualny plik dziennika, należy użyć instrukcja DROP MONTAŻOWYCH następującej składni:
DROP ASSEMBLY MyDotNETAssembly
DROP MONTAŻOWYCH nie koliduje z dowolnym kodem odwoływania się do wirtualny plik dziennika, który jest aktualnie uruchomione, ale po wykonuje DROP MONTAŻOWYCH, próby wywołania kodu wirtualny plik dziennika nie powiodą się.
DROP MONTAŻOWYCH zwraca błąd, jeśli zespół odwołują się do innego wirtualny plik dziennika, który nie istnieje w bazie danych lub jeśli jest używany przez funkcje (CLR) w czasie wykonywania języka wspólnego, procedur, wyzwalaczy, typów zdefiniowanych przez użytkownika (UDTs) lub zdefiniowane przez użytkownika zagregowanych (UDAs) w bieżącej bazie danych.Aby usunąć wszystkie obiekty bazy danych zarządzanych zawartych w zestawie należy najpierw użyć DROP agregacja, DROP FUNKCYJNE, DROP PROCEDURE, DROP TRIGGER i instrukcji DROP TYPE.
Usuwanie UDT z bazy danych
Instrukcja DROP TYPE usuwa UDT z bieżącej bazy danych.Po upuszczeniu UDT można użyć instrukcja DROP MONTAŻOWYCH, mają być umieszczane wirtualny plik dziennika z bazy danych.
Instrukcja DROP TYPE kończy się niepowodzeniem, jeśli obiekty zależne UDT, podobnie jak w następujących sytuacjach:
Tabele w bazie danych, które zawierają kolumny zdefiniowane przy użyciu UDT.
Procedur przechowywanych, funkcji lub wyzwalaczy, które używają zmiennych lub parametrów UDT, utworzone w bazie danych z klauzula WITH SCHEMABINDING.
Znajdowanie UDT zależności
Najpierw usunąć wszystkie obiekty zależne, a następnie wykonać instrukcja DROP TYPE.Poniżej Transact-SQL kwerendy Lokalizuje wszystkie kolumny i parametry, które używają UDT w AdventureWorks bazy danych.
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;