Det användes för "mellanliggande materialisering (Google-sökning)"
Bra artikel:Adam Machanic:Exploring the secrets of intermediate materialization
Han tog till och med upp en MS Connect så att det kan göras på ett renare sätt
Min uppfattning är "inte i sig dålig", men använd den inte om du inte är 100% säker. Problemet är att det bara fungerar när du gör det och förmodligen inte senare (patchnivå, schema, index, radantal etc)...
Fungerat exempel
Detta kan misslyckas eftersom du inte vet i vilken ordning saker och ting utvärderas
SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100
Och detta kan också misslyckas eftersom
SELECT foo
FROM
(SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE
CAST(foo AS int) > 100
Detta gjorde dock inte i SQL Server 2000. Den inre frågan utvärderas och spoolas:
SELECT foo
FROM
(SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
CAST(foo AS int) > 100
Observera att detta fortfarande fungerar i SQL Server 2005
SELECT TOP 2000000000 ... ORDER BY...