4

2 つのテーブルに基づいてデータのリストを選択するストアド プロシージャがあります。最初のテーブルは固定テーブルです: CO.Country. ただし、2 番目のテーブルは多数のテーブルの 1 つにすることができます。テーブル自体の名前は同じです: Location. ただし、テーブルのスキーマは異なります。ABD.Location, CGA.Location, GBN.Location.

ユーザーがアプリケーションからスキーマを選択すると、選択したスキーマがパラメータとしてストアド プロシージャに渡されます。

しかし、作成中にストアド プロシージャを解析するとエラーが発生します。

スキーマ名をパラメーターとして渡す方法はありますか?

4

1 に答える 1

3

DynamicSqlを使用する

このようにしてみてください

CREATE PROCEDURE proc_name
   @schema VARCHAR(25)
AS

DECLARE @Query VARCHAR(1000)
SET @query='SELECT * FROM' +@schema +'.Location'
EXECUTE(@query)
于 2013-08-26T05:38:01.550 に答える