5 методов вставки данных во временную таблицу в SQL Server

Чтобы вставить данные во временную таблицу SQL Server, вы можете использовать различные методы. Вот несколько распространенных подходов:

Метод 1: использование оператора SELECT INTO

SELECT column1, column2, ...
INTO #TempTable
FROM SourceTable
WHERE condition;

Этот метод создает временную таблицу (#TempTable) и вставляет выбранные столбцы и строки из исходной таблицы (SourceTable) на основе указанного условия.

Метод 2: использование оператора INSERT INTO

INSERT INTO #TempTable (column1, column2, ...)
SELECT column1, column2, ...
FROM SourceTable
WHERE condition;

Этот метод заранее явно создает временную таблицу (#TempTable) и вставляет выбранные столбцы и строки из исходной таблицы (SourceTable) на основе указанного условия.

Метод 3: использование оператора CREATE TABLE

CREATE TABLE #TempTable (
    column1 datatype,
    column2 datatype,
    ...
);
INSERT INTO #TempTable (column1, column2, ...)
SELECT column1, column2, ...
FROM SourceTable
WHERE condition;

Этот метод предполагает создание временной таблицы (#TempTable) с нужными именами столбцов и типами данных с помощью оператора CREATE TABLE. Затем вы можете вставить в него данные с помощью оператора INSERT INTO.

Метод 4. Использование оператора SELECT INTO с TOP 0

SELECT column1, column2, ...
INTO #TempTable
FROM SourceTable
WHERE condition
AND 1 = 0;

Этот метод создает пустую временную таблицу (#TempTable) с той же структурой, что и исходная таблица (SourceTable), используя условие «1 = 0», которое гарантирует, что строки не будут выбраны.

Метод 5: использование табличных переменных

DECLARE @TempTable TABLE (
    column1 datatype,
    column2 datatype,
    ...
);
INSERT INTO @TempTable (column1, column2, ...)
SELECT column1, column2, ...
FROM SourceTable
WHERE condition;

Переменные таблицы — это еще один способ хранения временных данных. Вы можете объявить табличную переменную (@TempTable) с нужными именами столбцов и типами данных, а затем вставить в нее данные с помощью инструкции INSERT INTO.