別のデータベースのいくつかのテーブルを含むいくつかのテーブルからのデータを集約するSQLServerのユーザー定義テーブル関数があります。これはクエリでデータベースの名前をハードコーディングして行われますが、データベース名を構成可能にしたいです(データベースは通常、他のアプリケーションのデータベースとサーバーを共有しているため)。
構成テーブルに格納されているデータベース名を使用して、関数内に動的クエリ文字列を作成しようとしましたが、次のようになりました。
exec(@sqlStatement)
SQL Serverを試したところ、関数内で文字列の実行は許可されていないと言われました。- 次に、試し
exec sp_executesql @sqlStatement
て関数を作成しましたが、実行すると、SQL Serverは、関数内では拡張関数とプロシージャしか実行できないと言っています。
したがって、問題は、データベース名が異なる場合に関数を再作成することなく、別のデータベースのテーブルにアクセスする関数またはストアドプロシージャを作成できるかどうかです。
TIA。