単純な問題ですが、少なくとも単純な解決策はありません。少なくとも私は頭の上の1つを考えることはできませんが、ソリューション。 名前が変数で定義されているテーブルを検索する
私は、このストアドプロシージャは、このストアドプロシージャを想定し、テーブル上の選択(基本的な形で)んていますSELECT * FROM myTable
、大丈夫それが検索する必要のあるテーブル名を除いて、十分に簡単
-- Just to give some context to the variables I'll be using
DECLARE @metaInfoID AS INT
SET @metaInfoID = 1
DECLARE @metaInfoTable AS VARCHAR(200)
SELECT @metaInfoTable = MetaInfoTableName FROM MetaInfos WHERE MetaInfoID = @MetaInfoID
DECLARE @sql AS VARCHAR(200)
SET @sql = 'SELECT * FROM ' + @metaInfoTable
EXEC @sql
だから、私は、これは最終的に悪いです認識し、そして私は、SQLインジェクション攻撃を行うことができる場所すぐに見ることができます知られていないので、私たちはこれにかなり似何かになってしまいました。だから、質問は、ダイナミックSQLの構築なしで同じ結果を達成する方法はありますか?または私はスーパーでなければならないでしょうか、クライアントのコードではスーパースーパーですか?
それはやるのが一番いいようです。どうもありがとう :) – Sekhat