SQL Server でのストアド プロシージャの設計に関する一般的な質問があります。
私は Web サイトを持っており、ユーザーは最大 30 の属性を使用して何かを検索できます (つまり、30 の条件すべてを使用することも、5 つだけを使用することもできます)。
このためのストアド プロシージャをどのように設計しますか? この手順を設計する際に留意する点は何ですか?
前もって感謝します。
SQL Server でのストアド プロシージャの設計に関する一般的な質問があります。
私は Web サイトを持っており、ユーザーは最大 30 の属性を使用して何かを検索できます (つまり、30 の条件すべてを使用することも、5 つだけを使用することもできます)。
このためのストアド プロシージャをどのように設計しますか? この手順を設計する際に留意する点は何ですか?
前もって感謝します。
おそらく動的SQLを調べる必要があります。
ここに私が思ういくつかの貴重な情報があります: http://www.sommarskog.se/dynamic_sql.html
基本的に、ユーザーの基準に基づいて動的に SQL クエリを作成します。
次のようなことができます。
create procedure foo
@param1 int = null,
@param2 int = null,
@param3 int = null,
...
次に、where句でこれを行うことができます:
where (@param1 = null or @param1 = somevalue)
and (@param2 = null or @param2 = somevalue)
....
null 許容パラメーターを使用することで、パラメーターの任意の組み合わせをストアド プロシージャに簡単に渡すことができます。実行計画を注意深く監視し、パラメータ スニッフィングが発生しないように注意してください。