Bagikan melalui


Rakitan - Menerapkan

Berlaku untuk: SQL Server

Topik 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 Rakitan

Rakitan dibuat di SQL Server dengan menggunakan pernyataan RAKITAN BUAT Transact-SQL, 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.

Untuk membuat rakitan dengan menggunakan Transact-SQL

Untuk membuat rakitan dengan menggunakan SQL Server Management Studio

Memodifikasi 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 rakitan saat ingin melakukan hal berikut:

  • Ubah implementasi assembly dengan mengunggah versi biner assembly yang lebih baru. Untuk informasi selengkapnya, lihat Mengelola Versi Rakitan nanti dalam topik ini.

  • Ubah kumpulan izin rakitan. Untuk informasi selengkapnya, lihat Merancang Rakitan.

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

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

Untuk mengubah rakitan dengan menggunakan Transact-SQL

Untuk mengubah rakitan dengan menggunakan SQL Server Management Studio

Menjatuhkan, Menonaktifkan, dan Mengaktifkan Rakitan

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

Untuk menjatuhkan rakitan dengan menggunakan Transact-SQL

Untuk menghilangkan rakitan dengan menggunakan SQL Server Management Studio

Secara default, semua rakitan yang dibuat di SQL Server dinonaktifkan dari eksekusi. Anda dapat menggunakan opsi clr yang diaktifkan dari prosedur tersimpan sistem sp_configure 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 yang saat ini dijalankan. Menonaktifkan eksekusi rakitan tidak menonaktifkan kemampuan untuk membuat, mengubah, atau menghilangkan rakitan. Untuk informasi selengkapnya, lihat Opsi Konfigurasi Server yang diaktifkan clr.

Untuk menonaktifkan dan mengaktifkan eksekusi rakitan

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 pernyataan ALTER ASSEMBLY untuk memperbarui assembly dalam database. Ini akan memperbarui perakitan ke salinan terbaru modul .NET Framework yang memegang implementasinya.

Klausa WITH UNCHECKED DATA dari pernyataan ALTER ASSEMBLY menginstruksikan SQL Server untuk me-refresh bahkan rakitan yang mempertahankan data dalam database bergantung. Secara khusus, Anda harus menentukan DENGAN DATA YANG TIDAK DICENTANG jika 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 format serialisasi UserDefined (non-Native).

Perhatian

Jika WITH UNCHECKED DATA tidak ditentukan, SQL Server mencoba mencegah ALTER ASSEMBLY dijalankan 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 dalam rakitan.

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

SQL Server memposting pesan ke log peristiwa aplikasi Windows bahwa rakitan telah 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 tampilan katalog sys.tables 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 pernyataan ALTER ASSEMBLY tambahan.

UBAH 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 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 hal 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 akan gagal.

Untuk memperbarui versi rakitan

Lihat Juga

Rakitan (Mesin Database)
Mendapatkan informasi tentang rakitan