Bagikan melalui


Menerapkan rakitan

Berlaku untuk: SQL Server

Artikel ini menyediakan informasi tentang area berikut untuk membantu Anda menerapkan dan bekerja dengan rakitan dalam database:

  • Membuat rakitan
  • Memodifikasi rakitan
  • Menjatuhkan, menonaktifkan, dan mengaktifkan rakitan
  • Mengelola versi rakitan

Membuat assembly

Rakitan dibuat di SQL Server dengan menggunakan pernyataan Transact-SQL CREATE ASSEMBLY , atau di SQL Server Management Studio dengan menggunakan Editor Bantuan Rakitan. Selain itu, menyebarkan Proyek SQL Server di Microsoft Visual Studio mendaftarkan rakitan dalam database yang ditentukan untuk proyek. Untuk informasi selengkapnya, lihat Menyebarkan Objek Database CLR.

Mengubah rakitan

Rakitan dimodifikasi di SQL Server dengan menggunakan pernyataan Transact-SQL ALTER ASSEMBLY atau di SQL Server Management Studio dengan menggunakan Editor Bantuan Rakitan.

Anda dapat mengubah assembly saat ingin melakukan tindakan berikut:

  • Ubah implementasi assembly dengan mengunggah versi biner assembly yang lebih baru. Untuk informasi selengkapnya, lihat Mengelola versi rakitan nanti di artikel ini.

  • Ubah kumpulan izin rakitan. Untuk informasi selengkapnya, lihat Mendesain rakitan.

  • Ubah visibilitas rakitan. Rakitan yang terlihat tersedia untuk dirujuk di SQL Server. Rakitan yang tidak terlihat tidak tersedia, bahkan jika diunggah dalam database. Secara default, rakitan yang diunggah ke instans SQL Server terlihat.

  • Menambahkan atau menghilangkan debug atau file sumber yang terkait dengan rakitan.

Menghilangkan, menonaktifkan, dan mengaktifkan rakitan

Rakitan dihilangkan dengan menggunakan pernyataan Transact-SQL DROP ASSEMBLY atau SQL Server Management Studio.

Secara default, semua rakitan yang dibuat di SQL Server dinonaktifkan dari eksekusi. Anda dapat menggunakan clr enabled opsi prosedur tersimpan sp_configure sistem, untuk menonaktifkan atau mengaktifkan eksekusi semua rakitan yang diunggah di SQL Server. Menonaktifkan eksekusi rakitan mencegah fungsi runtime bahasa umum (CLR), prosedur tersimpan, pemicu, agregat, dan jenis yang ditentukan pengguna untuk dieksekusi, dan menghentikan apa pun yang saat ini dijalankan. Menonaktifkan eksekusi rakitan tidak menonaktifkan kemampuan untuk membuat, mengubah, atau menghilangkan rakitan. Untuk informasi selengkapnya, lihat Konfigurasi server: clr diaktifkan.

Untuk informasi selengkapnya, lihat sp_configure.

Mengelola versi rakitan

Ketika rakitan diunggah ke instans SQL Server, perakitan disimpan dan dikelola dalam katalog sistem database. Setiap perubahan yang dilakukan pada definisi rakitan di Microsoft .NET Framework harus disebarluaskan ke rakitan yang disimpan dalam katalog database.

Ketika Anda harus memodifikasi assembly, Anda harus mengeluarkan ALTER ASSEMBLY pernyataan untuk memperbarui assembly dalam database. Pernyataan ini memperbarui perakitan ke salinan terbaru modul .NET Framework yang memegang implementasinya.

Klausul WITH UNCHECKED DATA ALTER ASSEMBLY pernyataan menginstruksikan SQL Server untuk me-refresh bahkan rakitan yang data yang bertahan dalam database bergantung. Secara khusus, Anda harus menentukan WITH UNCHECKED DATA apakah salah satu hal berikut ini ada:

  • Kolom komputasi yang dipertahankan yang mereferensikan metode dalam perakitan, baik secara langsung, atau tidak langsung, melalui fungsi atau metode Transact-SQL.

  • Kolom jenis yang ditentukan pengguna CLR yang bergantung pada rakitan, dan jenisnya mengimplementasikan UserDefined format serialisasi (non-Native).

Perhatian

Jika WITH UNCHECKED DATA tidak ditentukan, SQL Server mencoba mencegah ALTER ASSEMBLY eksekusi jika versi rakitan baru memengaruhi data yang ada dalam tabel, indeks, atau situs persisten lainnya. Namun, SQL Server tidak menjamin bahwa kolom komputasi, indeks, tampilan terindeks, atau ekspresi akan konsisten dengan rutinitas dan jenis yang mendasar ketika rakitan CLR diperbarui. Berhati-hatilah saat Anda menjalankan ALTER ASSEMBLY untuk memastikan bahwa tidak ada ketidakcocokan antara hasil ekspresi dan nilai yang didasarkan pada ekspresi yang disimpan di rakitan.

Hanya anggota peran database tetap db_owner dan db_ddlowner yang dapat dijalankan ALTER ASSEMBLY dengan menggunakan WITH UNCHECKED DATA klausa .

SQL Server memposting pesan ke log peristiwa Aplikasi Windows bahwa rakitan dimodifikasi dengan data yang tidak dicentang dalam tabel. SQL Server kemudian menandai tabel apa pun yang berisi data tergantung pada perakitan karena memiliki data yang tidak dicentang. Kolom has_unchecked_assembly_data sys.tables tampilan katalog berisi nilai 1 untuk tabel yang berisi data yang tidak dicentang, dan 0 untuk tabel tanpa data yang tidak dicentang.

Untuk mengatasi integritas data yang tidak dicentang, jalankan DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS terhadap setiap tabel yang memiliki data yang tidak dicentang. Jika DBCC CHECKDB WITH EXTENDED_LOGICAL_CHECKS gagal, Anda harus menghapus baris tabel yang tidak valid atau mengubah kode rakitan untuk mengatasi masalah, lalu mengeluarkan lebih ALTER ASSEMBLY banyak pernyataan.

ALTER ASSEMBLY mengubah versi rakitan. Budaya dan token kunci publik assembly tetap sama. SQL Server tidak mengizinkan pendaftaran versi rakitan yang berbeda dengan nama, budaya, dan kunci publik yang sama.

Interaksi dengan kebijakan di seluruh komputer untuk pengikatan versi

Jika referensi ke rakitan yang disimpan di SQL Server dialihkan ke versi tertentu dengan menggunakan kebijakan penerbit atau kebijakan administrator di seluruh komputer, Anda harus melakukan salah satu tindakan berikut:

  • Pastikan versi baru tempat pengalihan ini dibuat berada dalam database.

  • Ubah pernyataan apa pun ke file kebijakan eksternal komputer atau kebijakan penerbit untuk memastikan bahwa pernyataan tersebut mereferensikan versi tertentu yang ada di database.

Jika tidak, upaya untuk memuat versi rakitan baru ke instans SQL Server gagal.

Untuk informasi selengkapnya, lihat MENGUBAH ASSEMBLY.