将数据插入临时表

在创build临时表并声明数据types之后,

CREATE TABLE #TempTable( ID int, Date datetime, Name char(20)) 

那我如何在数据库中插入物理表上已存的相关数据呢?

 INSERT INTO #TempTable (ID, Date, Name) SELECT id, date, name FROM physical_table 
 SELECT ID , Date , Name into #temp from [TableName] 

要插入所有列的所有数据,只需使用以下命令:

 SELECT * INTO #TempTable FROM OriginalTable 

在完成之后并且尝试再次创build之前,请不要忘记DROP临时表:

 DROP TABLE #TempTable 

我在SQL Server中Insert方式。 另外我通常检查是否存在一个临时表。

 IF OBJECT_ID('tempdb..#MyTable') IS NOT NULL DROP Table #MyTable SELECT b.Val as 'bVals' INTO #MyTable FROM OtherTable as b 
 SELECT * INTO #TempTable FROM table 

正确的查询:

 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 #temptable (col1, col2, col3) select col1, col2, col3 from othertable 

请注意,这被认为是不好的做法:

 insert into #temptable select col1, col2, col3 from othertable 

如果临时表的定义发生更改,则代码在运行时可能会失败。

在创build临时表之后,您只需执行一个普通的INSERT INTO () SELECT FROM

 INSERT INTO #TempTable (id, Date, Name) SELECT t.id, t.Date, t.Name FROM yourTable t 
 INSERT INTO #TempTable(ID, Date, Name) SELECT OtherID, OtherDate, OtherName FROM PhysicalTable 
 insert #temptable select idfield, datefield, namefield from yourrealtable 

我提供了两种解决同一问题的方法,

解决scheme1:这种方法包括2个步骤,首先创build一个具有指定数据types的临时表,然后插入现有数据表中的值。

 CREATE TABLE #TempStudent(tempID int, tempName varchar(MAX) ) INSERT INTO #TempStudent(tempID, tempName) SELECT id, studName FROM students where id =1 SELECT * FROM #TempStudent 

解决scheme2:这种方法很简单,您可以直接将值插入到临时表中,系统会自动使用原始表的相同数据types创build临时表。

 SELECT id, studName INTO #TempStudent FROM students where id =1 SELECT * FROM #TempStudent 

临时表的基本操作如下,根据您的要求修改和使用,

– 创build一个TEMP TABLE

 CREATE TABLE #MyTempEmployeeTable(tempUserID varchar(MAX), tempUserName varchar(MAX) ) 

– 将值插入到TEMP表中

 INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21 

– QUERY TEMP TABLE [这将只在同一会话/实例中工作,不在其他用户会话实例中工作]

 SELECT * FROM #MyTempEmployeeTable 

– 在TEMP TABLE中删除值

 DELETE FROM #MyTempEmployeeTable 

– 放下温度表

 DROP TABLE #MyTempEmployeeTable