在创建临时表并像这样声明数据类型之后;

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

然后,我如何插入已经在数据库中的物理表上持有的相关数据?


当前回答

我在SQL Server中插入的方法。此外,我通常检查是否存在临时表。

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 OriginalTable

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

DROP TABLE #TempTable

正确的查询:

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 (ID, Date, Name) 
SELECT id, date, name 
FROM physical_table

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

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;
insert #temptable
select idfield, datefield, namefield from yourrealtable