В 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, как описано выше? Или единственный способ работы с временными данными - это необходимость многократно СОЗДАТЬ временную таблицу с каждой итерацией работы?