Сохранить набор результатов в памяти для нескольких запросов? - PullRequest
1 голос
/ 22 февраля 2011

Я думал, что CTE идеально подходят для моей хранимой процедуры, пока я не узнал, что на них можно ссылаться только в ОДНОМ запросе (то есть в запросе, следующем сразу после CTE). Теперь они кажутся довольно бессмысленными.

Я ищу способ выполнить запрос, сохранить этот набор результатов в памяти (а не на диске, как временная таблица или переменная таблицы), а затем сослаться на него в хранимой процедуре в нескольких инструкциях SELECT / INSERT / UPDATE. , Так же, как временное представление или CTE с более длинной областью действия. Но этого, похоже, не существует вообще в SQL Server! у кого-нибудь есть решение? Разве это не кажется довольно близоруким от имени функциональности CTE?

1 Ответ

0 голосов
/ 22 февраля 2011

Я согласен с комментариями.Я также не знаю точно, как будет сделано следующее, но я думаю, что это сработает.С учетом сказанного: ваш запрос должен генерировать вывод XML, сохранять его в переменной XML, а затем использовать xquery для ссылки и извлечения данных из него для остальной части процедуры.(Но опять же, я совсем не уверен, что вы можете написать запрос «SELECT @XML = ...». Может быть, OPENXML или что-то в этом роде?)

...