Vyřazení sestavení
platí pro:SQL Server
Sestavení zaregistrovaná v SQL Serveru pomocí příkazu CREATE ASSEMBLY
je možné odstranit nebo odstranit, pokud už funkce, které poskytují, už nejsou potřeba. Vyřazení sestavení odebere sestavení a všechny jeho přidružené soubory, jako jsou například ladicí soubory, z databáze. K vyřazení sestavení použijte příkaz DROP ASSEMBLY
s následující syntaxí:
DROP ASSEMBLY MyDotNETAssembly;
DROP ASSEMBLY
nenaruší žádný kód odkazující na sestavení, které je aktuálně spuštěné, ale po spuštění DROP ASSEMBLY
všechny pokusy o vyvolání kódu sestavení selžou.
DROP ASSEMBLY
vrátí chybu, pokud je na sestavení odkazováno jiným sestavením, které existuje v databázi, nebo pokud se používá funkcemi CLR (Common Language Runtime), procedurami, triggery, uživatelsky definovanými typy (UDT) nebo uživatelsky definovanými agregacemi (UDA) v aktuální databázi. Nejprve pomocí příkazů DROP AGGREGATE
, DROP FUNCTION
, DROP PROCEDURE
, DROP TRIGGER
a DROP TYPE
odstraňte všechny spravované databázové objekty obsažené v sestavení.
Odebrání UDT z databáze
Příkaz DROP TYPE
odebere UDT z aktuální databáze. Po vyřazení UDT můžete použít příkaz DROP ASSEMBLY
k vyřazení sestavení z databáze.
Příkaz DROP TYPE
selže, pokud objekty závisí na UDT, jako v následujících situacích:
Tabulky v databázi, které obsahují sloupce definované pomocí UDT.
Funkce, uložené procedury nebo triggery, které používají proměnné nebo parametry UDT vytvořené v databázi pomocí klauzule
WITH SCHEMABINDING
.
Vyhledání závislostí UDT
Nejprve musíte odstranit všechny závislé objekty a pak spustit příkaz DROP TYPE
. Následující Transact-SQL dotaz vyhledá všechny sloupce a parametry, které v databázi AdventureWorks2022
používají UDT.
USE Adventureworks2022;
GO
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
INNER JOIN sys.objects AS o
ON o.object_id = c.object_id
INNER JOIN sys.assembly_types AS at
ON at.user_type_id = c.user_type_id;
Související obsah
- Správa sestavení integrace CLR
- Změna sestavení
- Vytvoření sestavení
-
DROP AGGREGATE (Transact-SQL) - funkce DROP (Transact-SQL)
-
DROP PROCEDURE (Transact-SQL) - trigger DROP (Transact-SQL)
- typ drop (Transact-SQL)