È stato utilizzato per "materializzazione intermedia (ricerca Google)"
Buon articolo:Adam Machanic:esplorare i segreti della materializzazione intermedia
Ha persino sollevato un MS Connect in modo che possa essere fatto in modo più pulito
Il mio punto di vista "non è intrinsecamente negativo", ma non usarlo a meno che non sia sicuro al 100%. Il problema è che funziona solo nel momento in cui lo fai e probabilmente non più tardi (livello di patch, schema, indice, conteggio delle righe ecc.)...
Esempio funzionante
Questa operazione potrebbe non riuscire perché non sai in quale ordine vengono valutate le cose
SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100
E questo potrebbe anche fallire perché
SELECT foo
FROM
(SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE
CAST(foo AS int) > 100
Tuttavia, ciò non accadeva in SQL Server 2000. La query interna viene valutata e sottoposta a spooling:
SELECT foo
FROM
(SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
CAST(foo AS int) > 100
Nota, funziona ancora in SQL Server 2005
SELECT TOP 2000000000 ... ORDER BY...