Вставка данных во временную таблицу
после создания временной таблицы и объявления таких типов данных;
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