私は、テーブル上のすべてのデータを選択するクエリを作成しています。クエリは、ストアドプロシージャに渡す変数のテーブルベースを選択します。SQL ServerクエリのFROM句で変数を使用する方法は?
私の例ではここにあります。 example_sp table1
を実行すると、table1
が選択されます。 example_table table2
を使用する場合も同じですが、table2
を選択する必要があります。
ALTER PROCEDURE example_sp
@type varchar(10), -- value will be `table1` or `table2`
AS
BEGIN
SELECT * FROM @type
END
このようなテーブル名を渡す場合は、varchar(10)の代わりにsysnameデータ型を使用する必要があります。そして、ゴードンが以下のように投稿した例にしたがって、彼が彼の素晴らしい例のようにQUOTENAMEを使用していることを確認してください。それは大幅にSQLインジェクションのリスクを軽減するのに役立ちます。 –