Бінарний збірник зберігається у вигляді бази в базі даних, тому він переноситься туди, куди йде база даних. CLR увімкнено лише в екземплярі - для цього немає специфічних баз даних.
У будь-якому випадку, чому ви намагаєтеся це зробити?
(Я не намагаюся бути аргументативним; я просто хочу почути мотиви, які стосуються, тому що, можливо, проблему можна було б вирішити іншим способом, який відповідає вашим потребам.)
Неможливо зробити це легко, крім того, як скласти збірку у спільну базу даних.
Зважаючи на це, я думаю, що вигідно використовувати архітектуру, орієнтовану на бази даних, якщо тільки не існує конкретної ситуації, яка має дуже вагомі причини централізації. Причина полягає в тому, що розміщення збірки (або будь-чого з цього питання) поза базою даних створює залежність у вашому оточенні. Це якраз протилежний підхід, який Microsoft вибудовує із вміщеними базами даних, починаючи з SQL Server 2012.
Коли ви починаєте використовувати такі функції, як реплікація або кластеризація, ця залежність може потенційно додати величезну кількість складності розгортанню, а також до усунення несправностей та процедур відмови від переходів.
Ця архітектура набагато менш очевидна людям, незнайомим із системою (тобто вона менш самовідкрита і менш самодокументована).
Якщо вам потрібна різна безпека в різних базах даних або будь-що, що стосується змін, ви потрапили у світ шкоди.
Якщо ці бази даних розгортаються для клієнтів (це здається, що їх не буде, але я скажу це для повноти), це додає складності процедурі розгортання, технічного обслуговування та усунення несправностей.
Оскільки всі бази даних поділять цей код, якщо будь-які помилки введені (або виправлені!), Це може потенційно зламати всі програми, які покладаються на бази даних. Комплексне тестування одиниць було б абсолютно необхідним.
Якщо у вас є декілька баз даних, які потребують однакової функціональності, існують інші способи зменшення кількості дублювання, що, як я вважаю, є суть вправи. Навіть досить складна збірка CLR не займе багато фізичного простору для зберігання даних порівняно з даними в самій базі даних (майже завжди), тому я не вважаю це вірним аргументом, якщо у вас буквально не є тисячі крихітних баз даних, які потребують цього складання.
Що ви можете зробити, це змінити інші частини процедури розгортання цих баз даних, щоб зменшити дублювання джерела. Наприклад, побудувати та розгорнути збірку із загального місця розташування коду CLR у контролі джерела. Або створити сценарій, який розгортає ту саму збірку до баз даних. Автоматизуйте цю частину речей якомога більше, і це не буде великою справою.
Я погоджуюся, що те, що я пропоную, є компромісом, тому що все одно буде певне дублювання, але це повинно бути врівноважене з негативами, пов'язаними з впровадженням архітектури, яка не відповідає встановленому стандарту. Тільки ви можете вирішити, що підходить для вашого оточення.