私は値のリストに関連付けられたすべての行を返すクエリを持っています。パラメータリストによるSQLクエリフィルタリング
select * from TableA where ColumnB in (1, 2, 3, 5)
私はこのクエリをC#で生成して実行することができました。ただし、これはパラメータを使用しないため明らかに理想的ではなく、クエリプランをキャッシュしようとすると苦労し、SQLインジェクション攻撃に対して脆弱です。これは、しかし、これはN DBヒットになり、C#と何度も実行することができ
select * from TableA where ColumnB = @value
:
選択肢はこれを書くことです。
私が見ることのできる唯一の代替方法は、テンポラリテーブルを作成してそれに参加させることですが、この点はもっと複雑で、最初のオプションと同じ制限があります。
私はSQLサーバーとOLDBを使用していますが、クエリの作成は問題ではありません。私は最も効率的なプロセスを作成しようとしています。
これら3つの方法のどれが効率的ですか?代替案が欠けていますか?あなたは簡単にこの書くことができます
どのようにクエリを実行しますか? EF、LINQ、ADO、OLEDB? – paul
そしてどのサーバー? MySql、MsSql、その他? – mmdemirbas
OLDBとMsSQL、質問が更新されました – Liath