Udostępnij przez


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;