単一のデータベースに一連のカスタム CLR 関数がインストールされています。これらの関数を別のデータベースのクエリ/ビュー/プロシージャで使用する必要がある場合は、3 部構成の名前[db].[schema].[function]()で参照するだけで問題なく動作します。
しかし、エラーのため、計算列では使用できません4120 A user-defined function name cannot be prefixed with a database name in this context。
もちろん、2 部構成の名前を使用して同じデータベースに計算列を追加しても問題はありません[schema].[function]()。
この問題を解決する方法はありますか? 「元の」ものを参照する他のすべてのデータベースで、ある種の「ショートカット」関数を作成できるでしょうか? または、またはのように、名前のみを使用して関数を呼び出すことができるように、これらの関数をシステム データベースの 1 つにインストールできますleft()かsubstring()?
今のところ、新しい関数の更新とインストールに使用するスクリプトは、関数が必要なすべてのデータベースとmodeldb で同じことを行います。しかし、これを行うためのよりエレガントな方法があればいいのにと思います。