nejlepší zdroj pro podmínky dynamického vyhledávání:
Podmínky dynamického vyhledávání v T-SQL od Erlanda Sommarskoga
existuje mnoho jemných důsledků toho, jak to uděláte, pokud jde o to, zda lze index použít nebo ne. Pokud používáte správnou verzi SQL Server 2008, stačí přidat OPTION (RECOMPILE) na dotaz a pro optimalizace se použije hodnota lokální proměnné za běhu.
Zvažte toto, OPTION (RECOMPILE) převezme tento kód (kde nelze použít žádný index s touto změtí 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)
a optimalizovat jej za běhu tak, aby byl (za předpokladu, že byl předán pouze @Search2 s hodnotou):
WHERE
example@sqldat.com
a lze použít index (pokud ho máte definovaný ve sloupci 2)