Он использовался для « промежуточной материализации (поиск в Google) »
Хорошая статья: Адам Мачаник: Изучение секретов промежуточной материализации
Он даже поднял MS Connect, чтобы это можно было сделать более чистым способом.
Я считаю, что «неплохо по своей сути», но не используйте его, если не уверены на 100%. Проблема в том, что он работает только в то время, когда вы это делаете, и, вероятно, не позже (уровень исправления, схема, индекс, количество строк и т. Д.) ...
Пример работы
Это может потерпеть неудачу, потому что вы не знаете, в каком порядке оцениваются вещи
SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1 AND CAST(foo AS int) > 100
И это также может потерпеть неудачу, потому что
SELECT foo
FROM
(SELECT foo From MyTable WHERE ISNUMERIC (foo) = 1) bar
WHERE
CAST(foo AS int) > 100
Однако в SQL Server 2000 этого не было. Внутренний запрос оценивается и помещается в буфер:
SELECT foo
FROM
(SELECT TOP 100 PERCENT foo From MyTable WHERE ISNUMERIC (foo) = 1 ORDER BY foo) bar
WHERE
CAST(foo AS int) > 100
Обратите внимание, это все еще работает в SQL Server 2005
SELECT TOP 2000000000 ... ORDER BY...