将数据插入临时表

时间:2012-08-02 13:56:05

标签: sql sql-server temp-tables

创建临时表并声明数据类型之后;

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

如何插入数据库中物理表上已保存的相关数据?

13 个答案:

答案 0 :(得分:210)

INSERT INTO #TempTable (ID, Date, Name) 
SELECT id, date, name 
FROM physical_table

答案 1 :(得分:73)

要插入所有列的所有数据,只需使用:

SELECT * INTO #TempTable
FROM OriginalTable

在您完成临时表后,不要忘记DROP临时表,之后再次尝试创建临时表:

DROP TABLE #TempTable

答案 2 :(得分:71)

SELECT  ID , Date , Name into #temp from [TableName]

答案 3 :(得分:38)

我在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

答案 4 :(得分:14)

SELECT * 
INTO #TempTable
FROM table

答案 5 :(得分:7)

正确的查询:

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

答案 6 :(得分:6)

创建临时表后,您只需执行正常的INSERT INTO () SELECT FROM

INSERT INTO #TempTable (id, Date, Name)
SELECT t.id, t.Date, t.Name
FROM yourTable t

答案 7 :(得分:6)

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

  

解决方案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

答案 8 :(得分:5)

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

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

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

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

答案 9 :(得分:4)

INSERT INTO #TempTable(ID, Date, Name)
SELECT OtherID, OtherDate, OtherName FROM PhysicalTable

答案 10 :(得分:2)

insert #temptable
select idfield, datefield, namefield from yourrealtable

答案 11 :(得分:0)

上面提到的所有答案几乎都可以达到目的。但是,您需要在对其进行所有操作后删除临时表。你可以关注-

插入#TempTable(ID、日期、名称) 选择 ID、日期、名称 FROM physical_table;

IF OBJECT_ID('tempdb.dbo.#TempTable') 不是 NULL 删除表#TempTable;

答案 12 :(得分:0)

上面提到的所有答案几乎都可以达到目的。但是,您需要在对其进行所有操作后删除临时表。你可以关注-

INSERT INTO #TempTable (ID, Date, Name) 
SELECT id, date, name 
FROM physical_table;

IF OBJECT_ID('tempdb.dbo.#TempTable') IS NOT NULL 
    DROP TABLE #TempTable;