Bagikan melalui


Menjatuhkan Assembly

Berlaku untuk:SQL Server

Rakitan yang telah didaftarkan di SQL Server menggunakan pernyataan CREATE ASSEMBLY dapat dihapus, atau dihilangkan, ketika fungsionalitas yang mereka berikan tidak lagi diperlukan. Menghapus rakitan akan menghapus assembly dan semua file terkaitnya, seperti file debug, dari database. Untuk menghilangkan assembly, gunakan pernyataan DROP ASSEMBLY dengan sintaks berikut:

DROP ASSEMBLY MyDotNETAssembly  

DROP ASSEMBLY tidak mengganggu kode apa pun yang merujuk perakitan yang saat ini berjalan, tetapi setelah DROP ASSEMBLY dijalankan, setiap upaya untuk memanggil kode perakitan gagal.

DROP ASSEMBLY mengembalikan kesalahan jika rakitan direferensikan oleh rakitan lain yang ada dalam database, atau jika digunakan oleh fungsi, prosedur, pemicu, jenis (UDT) runtime bahasa umum (CLR), jenis yang ditentukan pengguna (UDT), atau agregat yang ditentukan pengguna (UDAs) dalam database saat ini. Pertama gunakan pernyataan DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, DROP TRIGGER, dan DROP TYPE untuk menghapus objek database terkelola yang terkandung dalam assembly.

Menghapus UDT dari Database

Pernyataan DROP TYPE menghapus UDT dari database saat ini. Setelah UDT dihilangkan, Anda dapat menggunakan pernyataan DROP ASSEMBLY untuk menghilangkan rakitan dari database.

Pernyataan DROP TYPE gagal jika objek bergantung pada UDT, seperti dalam situasi berikut:

  • Tabel dalam database yang berisi kolom yang ditentukan menggunakan UDT.

  • Fungsi, prosedur tersimpan, atau pemicu yang menggunakan variabel atau parameter UDT, yang dibuat dalam database dengan klausa WITH SCHEMABINDING.

Menemukan Dependensi UDT

Anda harus terlebih dahulu menghilangkan semua objek dependen, lalu menjalankan pernyataan DROP TYPE. Kueri Transact-SQL berikut menemukan semua kolom dan parameter yang menggunakan UDT dalam database 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;   

Lihat juga

Mengelola Rakitan Integrasi CLR
Mengubah Assembly
Membuat Assembly
DROP AGGREGATE (Transact-SQL)
DROP FUNCTION (Transact-SQL)
DROP PROCEDURE (Transact-SQL)
DROP TRIGGER (Transact-SQL)
DROP TYPE (Transact-SQL)