Udostępnij przez


Upuszczanie zestawu

Zestawy, które zostały zarejestrowane w SQL Server za pomocą instrukcja tworzenia zestawu mogą być usunięte lub usunięte, kiedy zapewniają funkcjonalność nie jest już potrzebna.Upuszczanie wirtualny plik dziennika usuwa Zgromadzenie i wszystkie skojarzone pliki, takie jak pliki debugowania z bazy danych.Aby upuścić wirtualny plik dziennika, należy użyć instrukcja DROP wirtualny plik dziennika z następującą składnią:

DROP ASSEMBLY MyDotNETAssembly

UPUŚĆ wirtualny plik dziennika nie koliduje z kodu odwołującego się do wirtualny plik dziennika, który jest aktualnie uruchomione, ale po UPUŚĆ Zgromadzenie wykonuje, próby wywołania kodu wirtualny plik dziennika nie powiodą się.

UPUŚĆ wirtualny plik dziennika zwraca błąd, jeśli zgromadzenie odwołują się do innego wirtualny plik dziennika, który istnieje w bazie danych lub jeśli jest używany przez typowe funkcje runtime (CLR) języka, procedur, wyzwalaczy, typów zdefiniowanych przez użytkownika (UDTs) lub zdefiniowane przez użytkownika agregatów (UDAs) w bieżącej bazie danych.Najpierw użyj instrukcji DROP agregacji, UPUŚĆ funkcji, UPUŚĆ procedury, UPUŚĆ WYZWALACZA i DROP TYPE do usunięcia żadnych obiektów zarządzanych bazy danych zawartych w wirtualny plik dziennika.

Usuwanie UDT z bazy danych

Instrukcja DROP TYPE usuwa UDT z bieżącej bazy danych.Po UDT jest odrzucone, można użyć instrukcja DROP wirtualny plik dziennika upuścić wirtualny plik dziennika z bazy danych.

Instrukcja DROP TYPE nie powiedzie się, jeśli obiekty są zależne od UDT, 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 i parametrów UDT, utworzone w bazie danych z klauzula Z SCHEMABINDING.

Znajdowanie UDT zależności

Najpierw usunąć wszystkie obiekty zależne, a następnie wykonać instrukcja DROP TYPE.Następujące Transact-SQL kwerendy Lokalizuje wszystkie kolumny i parametry, które używają UDT w AdventureWorks2008R2 bazy danych.

USE Adventureworks2008R2;
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;