Bagikan melalui


Mengubah rakitan

Berlaku untuk:SQL Server

Rakitan yang terdaftar di SQL Server dapat diperbarui dari versi yang lebih baru menggunakan pernyataan ALTER ASSEMBLY. Untuk memperbarui assembly, gunakan pernyataan ALTER ASSEMBLY dengan sintaks berikut:

ALTER ASSEMBLY SQLCLRTest
    FROM 'C:\MyDBApp\SQLCLRTest.dll';

ALTER ASSEMBLY tidak mengganggu proses yang sedang berjalan yang menggunakan assembly; proses terus dijalankan dengan rakitan yang tidak diubah. ALTER ASSEMBLY tidak dapat digunakan untuk mengubah tanda tangan fungsi common language runtime (CLR), fungsi agregat, prosedur tersimpan, dan pemicu. Anda dapat menambahkan metode publik baru ke assembly, metode privat dapat dimodifikasi dengan cara apa pun, dan metode publik dapat dimodifikasi selama tanda tangan atau atribut tidak diubah. Bidang yang terkandung dalam jenis yang ditentukan pengguna berserialisasi asli, termasuk anggota data atau kelas dasar, tidak dapat diubah dengan menggunakan ALTER ASSEMBLY. Semua perubahan lainnya tidak didukung. Untuk informasi selengkapnya, lihat ALTER ASSEMBLY.

Mengubah kumpulan izin rakitan

Kumpulan izin assembly juga dapat diubah menggunakan pernyataan ALTER ASSEMBLY. Pernyataan berikut mengubah kumpulan izin perakitan SQLCLRTest menjadi EXTERNAL_ACCESS.

ALTER ASSEMBLY SQLCLRTest
    WITH PERMISSION_SET = EXTERNAL_ACCESS;

Jika kumpulan izin assembly diubah dari SAFE ke EXTERNAL_ACCESS atau UNSAFE, kunci asimetris dan login yang sesuai dengan izin EXTERNAL ACCESS ASSEMBLY atau izin UNSAFE ASSEMBLY untuk assembly harus dibuat terlebih dahulu. Untuk informasi selengkapnya, lihat Membuat rakitan.

Menambahkan kode sumber rakitan

Klausa ADD FILE dalam sintaks ALTER ASSEMBLY tidak ada dalam CREATE ASSEMBLY. Anda dapat menggunakannya untuk menambahkan kode sumber atau file lain yang terkait dengan rakitan. File disalin dari lokasi aslinya dan disimpan dalam tabel sistem dalam database. Dengan cara ini, Anda selalu memiliki kode sumber atau file lain jika Anda perlu membuat ulang atau mendokumentasikan versi jenis yang ditentukan pengguna (UDT) saat ini.

Pernyataan berikut menambahkan kode sumber kelas Point.cs untuk UDT Point. Ini menyalin teks yang terkandung dalam file Point.cs dan menyimpannya dalam database dengan nama PointSource.

ALTER ASSEMBLY Point
ADD FILE FROM 'C:\Projects\Point\Point.cs' AS PointSource;