Byl použit pro „střední materializaci (vyhledávání Google)“
Dobrý článek:Adam Machanic:Zkoumání tajemství intermediární materializace
Dokonce vytvořil MS Connect, takže to může být provedeno čistším způsobem
Můj názor je "není ve své podstatě špatný", ale nepoužívejte jej, pokud si nejste 100% jistý. Problém je v tom, že to funguje pouze v době, kdy to uděláte, a pravděpodobně ne později (úroveň opravy, schéma, index, počet řádků atd.)...
Fungovaný příklad
To může selhat, protože nevíte, v jakém pořadí se věci hodnotí
SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100
A to může také selhat, protože
SELECT foo
FROM
(SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE
CAST(foo AS int) > 100
To se však nestalo v SQL Server 2000. Vnitřní dotaz je vyhodnocen a zařazen do fronty:
SELECT foo
FROM
(SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
CAST(foo AS int) > 100
Všimněte si, že to stále funguje v SQL Server 2005
SELECT TOP 2000000000 ... ORDER BY...