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

5
задан APC 10 September 2010 в 05:23
поделиться