Временные таблицы SQL Server через MS Access

Что ж, я годами использовал таблицы #temp в стандартном кодировании T-SQL и думал, что понимаю их. Однако меня втянули в проект, основанный на MS Access, с использованием сквозных запросов, и я обнаружил кое-что, что меня действительно озадачило. Хотя, возможно, это внутренняя работа Access, которая меня одурачила!?

Итак, начнем: при обычном использовании я понимаю, что если я создаю временную таблицу в SProc, ее область действия заканчивается с концом SPrc и по умолчанию удаляется.

В примере с Access я обнаружил, что это можно сделать в одном запросе:

выберите top(10) * в #myTemp из dbo.myTable

И затем это во втором отдельном запросе:

выберите * из #myTemp

Как это возможно ? Если временная таблица умирает с текущим сеансом, означает ли это, что Access сохраняет один сеанс открытым и использует этот сеанс для всех выполняемых запросов?

Или мое фундаментальное понимание масштаба все это время было неверным?

Надеюсь, кто-то там может помочь прояснить, что происходит под капотом!?

Огромное спасибо


person SimonB    schedule 04.09.2013    source источник


Ответы (1)


Я нашел этот ответ на похожий вопрос:

Временная таблица хранится в базе данных tempdb до тех пор, пока соединение не будет разорвано (или, в случае с глобальными временными таблицами, когда последнее соединение, использующее ее, будет удалено). Вы также можете (и это хорошая практика) вручную удалить таблицу, когда вы закончите ее использование с оператором drop table.

Надеюсь, это поможет.

person seph    schedule 04.09.2013