Что ж, я годами использовал таблицы #temp в стандартном кодировании T-SQL и думал, что понимаю их. Однако меня втянули в проект, основанный на MS Access, с использованием сквозных запросов, и я обнаружил кое-что, что меня действительно озадачило. Хотя, возможно, это внутренняя работа Access, которая меня одурачила!?
Итак, начнем: при обычном использовании я понимаю, что если я создаю временную таблицу в SProc, ее область действия заканчивается с концом SPrc и по умолчанию удаляется.
В примере с Access я обнаружил, что это можно сделать в одном запросе:
выберите top(10) * в #myTemp из dbo.myTable
И затем это во втором отдельном запросе:
выберите * из #myTemp
Как это возможно ? Если временная таблица умирает с текущим сеансом, означает ли это, что Access сохраняет один сеанс открытым и использует этот сеанс для всех выполняемых запросов?
Или мое фундаментальное понимание масштаба все это время было неверным?
Надеюсь, кто-то там может помочь прояснить, что происходит под капотом!?
Огромное спасибо