Какие предпочтения и преимущества для обработки с использованием временной таблицы или процесса с использованием фактической таблицы в SQL Server 2016 и выше?
Это SQL запросы для обработки с использованием временной таблицы:
DROP TABLE IF EXIST #temp1;
SELECT
a.col1 AS col1, a.col2 AS col2,
b.col1 AS col3, b.col2 AS col4
INTO #temp1
FROM table1 AS a
INNER JOIN table2 AS b ON a.id = b.id
WHERE a.col1 = 'best_practice'
OR a.col1 = 'performance' ;
INSERT INTO schema1.destination_table (col1, col2, col3, col4)
SELECT col1, col2, col3, col4
FROM #temp1 ;
Это SQL запросы с использованием фактической таблицы:
TRUNCATE TABLE schema1.process_table;
INSERT INTO schema1.process_table (col1, col2, col3, col4)
SELECT
a.col1 AS col1, a.col2 AS col2,
b.col1 AS col3, b.col2 AS col4
FROM
table1 AS a
INNER JOIN
table2 AS b ON a.id = b.id
WHERE
a.col1 = 'performance'
OR a.col1 = 'performance' ;
INSERT INTO schema1.destination_table (col1, col2, col3, col4)
SELECT col1, col2, col3, col4
FROM #temp1;
DDL ( Скрипт определения языка данных) для таблицы процессов:
CREATE TABLE schema1.destination_table
(
col1 AS VARCHAR(10) NULL,
col2 AS VARCHAR(10) NULL,
col3 AS VARCHAR(10) NULL,
col4 AS VARCHAR(10) NULL
);