Bagikan melalui


Menjatuhkan Rakitan

Berlaku untuk: SQL Server

Rakitan yang telah terdaftar di SQL Server menggunakan pernyataan CREATE ASSEMBLY dapat dihapus, atau dihilangkan, ketika fungsionalitas yang mereka berikan tidak lagi diperlukan. Menghapus rakitan akan menghapus rakitan dan semua file terkaitnya, seperti file debug, dari database. Untuk menghilangkan rakitan, 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 rakitan gagal.

DROP ASSEMBLY mengembalikan kesalahan jika rakitan direferensikan oleh rakitan lain yang ada dalam database, atau jika digunakan oleh fungsi, prosedur, pemicu, jenis yang ditentukan pengguna (UDT) common language runtime (CLR), 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 rakitan.

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 Rakitan
DROP AGGREGATE (Transact-SQL)
DROP FUNCTION (Transact-SQL)
DROP PROCEDURE (Transact-SQL)
JATUHKAN PEMICU (Transact-SQL)
JENIS DROP (Transact-SQL)