Вставка данных во временную таблицу
после создания временной таблицы и объявления таких типов данных;
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
Как вставить соответствующие данные, которые уже хранятся в физической таблице в базе данных?
12 ответов
вставить все данные из всех столбцов, просто использовать это:
SELECT * INTO #TempTable
FROM OriginalTable
не забудьте DROP
временная таблица после того, как вы закончите с ней и до вы пытаетесь создать его снова:
DROP TABLE #TempTable
мой способ Insert
в SQL Server. Также я обычно проверяю, существует ли временная таблица.
IF OBJECT_ID('tempdb..#MyTable') IS NOT NULL DROP Table #MyTable
SELECT b.Val as 'bVals'
INTO #MyTable
FROM OtherTable as b
правильный запрос:
drop table #tmp_table
select new_acc_no, count(new_acc_no) as count1
into #tmp_table
from table
where unit_id = '0007'
group by unit_id, new_acc_no
having count(new_acc_no) > 1
после создания временной таблицы вы просто сделаете нормальный INSERT INTO () SELECT FROM
INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t
insert into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable
обратите внимание, что это считается плохой практикой:
insert into #temptable
select col1, col2, col3 from othertable
Если определение временной таблицы должно было измениться, код может завершиться ошибкой во время выполнения.
Я предоставил два подхода для решения одной и той же проблемы,
Решение 1: Этот подход включает в себя 2 шага, сначала создать временную таблицу с указанный тип данных, далее вставить значение из существующих данных таблица.
CREATE TABLE #TempStudent(tempID int, tempName varchar(MAX) )
INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1
SELECT * FROM #TempStudent
решение 2: этот подход прост, когда вы можете напрямую вставить значения в временная таблица, где автоматически система позаботится о создании временную таблицу с тем же типом данных исходная таблица.
SELECT id, studName INTO #TempStudent FROM students where id =1
SELECT * FROM #TempStudent
основная деятельность временной таблицы приведена ниже, доработайте и используйте согласно вашим требованиям,
-- СОЗДАЙТЕ ВРЕМЕННУЮ ТАБЛИЦУ
CREATE TABLE #MyTempEmployeeTable(tempUserID varchar(MAX), tempUserName varchar(MAX) )
-- ВСТАВИТЬ ЗНАЧЕНИЕ ВО ВРЕМЕННУЮ ТАБЛИЦУ
INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21
-- запросить временную таблицу [это будет работать только в том же сеансе / экземпляре, а не в другом экземпляре сеанса пользователя]
SELECT * FROM #MyTempEmployeeTable
-- УДАЛИТЬ ЗНАЧЕНИЕ В ТАБЛИЦЕ TEMP
DELETE FROM #MyTempEmployeeTable
-- ОТБРОСЬТЕ ВРЕМЕННУЮ ТАБЛИЦУ
DROP TABLE #MyTempEmployeeTable