動的検索条件の最適なソース:
ErlandSommarskogによるT-SQLの動的検索条件
インデックスを使用できるかどうかに関して、これをどのように行うかについては、多くの微妙な影響があります。 SQL Server 2008の適切なリリースを使用している場合は、OPTION (RECOMPILE)を追加するだけです。 クエリに追加され、実行時のローカル変数の値が最適化に使用されます。
これを考慮してください、OPTION (RECOMPILE) このコードを取得します(この混乱したORでインデックスを使用することはできません s):
WHERE
(@search1 IS NULL or example@sqldat.com)
AND (@search2 IS NULL or example@sqldat.com)
AND (@search3 IS NULL or example@sqldat.com)
実行時に最適化して(@ Search2のみが値とともに渡された場合):
WHERE
example@sqldat.com
インデックスを使用できます(Column2で定義されている場合)