私が Web への移植に取り組んでいるアプリケーションでは、現在、指定された「テンプレート」文字列に基づいて、実行時にさまざまなテーブルに動的にアクセスしています。SQL サーバーに移行するので、その負担をデータベースに戻したいので、動的 GridView をいじる必要はありません。テーブル名のパラメーターとクエリの WHERE 句のパラメーターを使用して、テーブル値の UDF を作成することを考えました。
UDF に次のように入力しましたが、明らかに機能しません。ある種の varchar または文字列を取り、FROM 句で機能するテーブル参照を取得する方法はありますか?
CREATE FUNCTION TemplateSelector
(
@template varchar(40),
@code varchar(80)
)
RETURNS TABLE
AS
RETURN
(
SELECT * FROM @template WHERE ProductionCode = @code
)
または、これと概念が似ている結果セットを取得する他の方法。基本的に、@code の ProductionCode が一致する varchar @template によって示されるテーブル内のすべてのレコード。
「テーブル変数 "@template" を宣言する必要があります」というエラーが表示されるため、SQL サーバーはテーブル変数から選択しようとしている可能性があります。
編集時: ええ、関数でそれを行う必要はありません。Stored Procs を実行できます。以前にそれらを作成したことがありません。