Biner rakitan disimpan sebagai gumpalan di basis data, sehingga dibawa ke mana pun basis data pergi. CLR hanya diaktifkan pada instance - tidak ada pengaturan khusus database untuk itu.
Bagaimanapun, mengapa Anda mencoba melakukan ini?
(Saya tidak berusaha untuk berdebat; Saya hanya ingin mendengar motif yang terlibat, karena mungkin masalahnya dapat diselesaikan dengan cara yang berbeda yang memenuhi kebutuhan Anda.)
Tidak ada cara untuk melakukan ini dengan mudah, kecuali menempatkan perakitan di database bersama.
Yang mengatakan, saya akan berpikir itu menguntungkan untuk merangkul arsitektur database-sentris, kecuali ada situasi tertentu yang memiliki alasan kuat untuk memusatkan. Alasan mengapa menempatkan majelis (atau apa pun) di luar database menciptakan ketergantungan di lingkungan Anda. Ini justru pendekatan sebaliknya yang sedang dikembangkan oleh Microsoft dengan Contained Databases yang dimulai pada SQL Server 2012.
Ketika Anda mulai perlu menggunakan fitur seperti replikasi atau pengelompokan, ketergantungan ini berpotensi menambah kerumitan dalam penyebaran, tetapi juga untuk pemecahan masalah, dan prosedur failover.
Arsitektur ini jauh kurang jelas bagi orang yang tidak terbiasa dengan sistem (yaitu, itu kurang dapat ditemukan sendiri, dan kurang mendokumentasikan diri).
Jika pada akhirnya Anda membutuhkan keamanan yang berbeda di database yang berbeda, atau apa pun yang melibatkan variasi, Anda berada dalam dunia yang terluka.
Jika basis data ini digunakan untuk pelanggan (sepertinya tidak akan, tetapi saya akan mengatakan ini untuk kelengkapan), ini menambah kerumitan pada prosedur penyebaran, pemeliharaan, dan pemecahan masalah.
Karena semua basis data akan membagikan kode ini, jika ada bug yang diperkenalkan (atau diperbaiki!), Ini berpotensi menghancurkan semua aplikasi yang bergantung pada basis data. Pengujian unit komprehensif akan menjadi keharusan mutlak.
Jika Anda memiliki beberapa database yang membutuhkan fungsi yang sama, ada cara lain untuk mengurangi jumlah duplikasi yang terlibat, yang saya asumsikan adalah inti dari latihan ini. Bahkan perakitan CLR yang cukup kompleks tidak akan memakan banyak ruang penyimpanan fisik dibandingkan dengan data dalam database itu sendiri (hampir selalu), jadi saya tidak melihat itu sebagai argumen yang valid kecuali jika Anda memiliki ribuan database kecil yang membutuhkan ini majelis.
Apa yang bisa Anda lakukan adalah memodifikasi bagian lain dari prosedur penyebaran untuk database ini untuk mengurangi duplikasi sumber. Misalnya, membangun dan menggunakan unit dari lokasi umum kode CLR dalam kontrol sumber. Atau, buat skrip yang menyebarkan rakitan yang sama ke database. Otomatiskan bagian ini sebanyak mungkin, dan itu tidak akan menjadi masalah besar.
Saya setuju bahwa apa yang saya sarankan adalah tradeoff, karena masih akan ada duplikasi, tetapi itu harus diimbangi dengan negatif yang terlibat dengan penerapan arsitektur yang tidak mengikuti standar yang ditentukan. Hanya Anda yang dapat memutuskan apa yang tepat untuk lingkungan Anda.