トピックが示唆しているように、.NET (実際には言語は関係ありません) と SQL Server を使用して、テーブル名をパラメーターとして渡すことができるようにしたいと考えています。
値に対してこれを行う方法を知っています。たとえば、クエリでパラメーターを示すために使用しますcommand.Parameters.AddWithValue("whatever", whatever)
。@whatever
問題は、列やテーブル名など、クエリの他の部分でこれを実行できるようにしたい状況にあるということです。
これは理想的な状況ではありませんが、私が使用しなければならない状況です。コードを使用する人だけがこれらのテーブル名を設定でき、エンドユーザーは設定できないため、SQL インジェクションが実際に発生する可能性はありません。しかし、それは面倒です。
それで、私が求めていることは可能ですか?
編集: SQL インジェクションについて明確にするために、状況に応じて、テーブル名はソース コードによってのみ渡されます。これを指定するのは開発者です。いずれにせよ、開発者はデータベース層にアクセスできるので、私が尋ねているのはセキュリティのためではなく、コードをよりきれいにするためです。