将数据插入临时表
在创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