アセンブリバイナリはblobとしてデータベースに保存されるため、データベースの場所を問わず持ち運びできます。CLRはインスタンスでのみ有効になります。そのためのデータベース固有の設定はありません。
いずれにせよ、なぜあなたはこれをやろうとしているのですか?
(私は議論になろうとはしていません。おそらくあなたのニーズを満たす別の方法で問題を解決できるかもしれないので、関与する動機を聞きたいです。)
アセンブリを共有データベースに置くことを除いて、これを簡単に行う方法はありません。
とはいえ、集中化する非常に説得力のある理由がある特定の状況がない限り、データベース中心のアーキテクチャを採用することは有利だと思います。その理由は、データベースの外にアセンブリ(またはそのことは何でも)を配置すると、環境に依存関係が作成されるためです。これは、MicrosoftがSQL Server 2012以降の包含データベースで構築しようとしている正反対のアプローチです。
レプリケーションやクラスタリングなどの機能の使用が必要になると、この依存関係により、展開が非常に複雑になる可能性がありますが、トラブルシューティングやフェールオーバーの手順も複雑になる可能性があります。
このアーキテクチャは、システムに不慣れな人々にはあまり明白ではありません(つまり、自己発見性が低く、自己文書化が少なくなります)。
さまざまなデータベースでさまざまなセキュリティが必要になったり、バリエーションが関係するものが必要になったりすると、あなたは痛い目に遭います。
これらのデータベースが顧客に展開される場合(そうではないように聞こえますが、完全を期すためにこれを言います)、これにより展開手順、メンテナンス、およびトラブルシューティングが複雑になります。
すべてのデータベースがこのコードを共有するため、バグが導入された(または修正された)場合、データベースに依存するすべてのアプリケーションが破損する可能性があります。包括的な単体テストは絶対必要です。
同じ機能を必要とする複数のデータベースがある場合、関連する複製の量を減らす他の方法があります。これが演習のポイントだと思います。かなり複雑なCLRアセンブリでさえ、データベース自体のデータと比較して(ほとんどの場合)物理的なストレージスペースをあまり占有しないので、これを必要とする文字通り数千の小さなデータベースがない限り、それを有効な引数としては見ませんアセンブリ。
できることは、これらのデータベースの展開手順の他の部分を変更して、ソースの重複を減らすことです。たとえば、ソース管理のCLRコードの共通の場所からアセンブリをビルドして展開します。または、同じアセンブリをデータベースに展開するスクリプトを作成します。物事のこの部分を可能な限り自動化し、それは大したことではないでしょう。
私は提案していることはトレードオフであることに同意します、それはまだいくらかの重複があるからです、しかしそれは規定された標準に従わないアーキテクチャの実装に伴う否定とバランスをとらなければなりません。環境に最適なものを決定できるのはあなただけです。