Był używany do „pośredniej materializacji (wyszukiwarka Google)”
Dobry artykuł:Adam Machani:Odkrywanie sekretów pośredniej materializacji
Podniósł nawet MS Connect, aby można było to zrobić w czystszy sposób
Mój pogląd „nie jest z natury zły”, ale nie używaj go, chyba że jest na 100% pewien. Problem polega na tym, że działa tylko w momencie, w którym to robisz i prawdopodobnie nie później (poziom łaty, schemat, indeks, liczba wierszy itp.)...
Przykład pracy
Może się to nie udać, ponieważ nie wiesz, w jakiej kolejności rzeczy są oceniane
SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100
Może się to również nie udać, ponieważ
SELECT foo
FROM
(SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE
CAST(foo AS int) > 100
Jednak tak się nie stało w SQL Server 2000. Wewnętrzne zapytanie jest oceniane i buforowane:
SELECT foo
FROM
(SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
CAST(foo AS int) > 100
Uwaga, to nadal działa w SQL Server 2005
SELECT TOP 2000000000 ... ORDER BY...