SQL Server / Oracle: частные временные таблицы
В Oracle вы можете создать временную таблицу, используя что-то вроде:
CREATE GLOBAL TEMPORARY TABLE temp_table (
field1 NUMBER,
field2 NUMBER
)
ON COMMIT DELETE ROWS;
... что может быть довольно изящно, поскольку это создает таблицу, видимую каждому, но данные, которые ВСТАВЛЯЕТСЯ в таблицу, видны только ему или ей. Кроме того, эти данные автоматически удаляются в конце транзакции или сеанса (в зависимости от их объявления), в результате чего временные данные всех остальных не пострадают.
Однако в SQL Server вы можете создать временную таблицу с помощью:
CREATE TABLE #temp_table (field1 INT, field2 INT);
... что, насколько я понимаю, существенно и функционально отличается от реализации Oracle. Эта временная таблица видна только вам и удаляется (таблица) сразу после использования.
Есть ли возможность в SQL Server имитировать поведение Oracle, как описано выше? Или единственный способ работать с временными данными заключается в том, что необходимо повторно СОЗДАТЬ временную таблицу с каждой итерацией работы?