在创建临时表并像这样声明数据类型之后;
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
然后,我如何插入已经在数据库中的物理表上持有的相关数据?
在创建临时表并像这样声明数据类型之后;
CREATE TABLE #TempTable(
ID int,
Date datetime,
Name char(20))
然后,我如何插入已经在数据库中的物理表上持有的相关数据?
当前回答
上面提到的所有答案几乎都能达到目的。但是,在对临时表进行了所有操作之后,您需要删除它。你可以跟着-
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 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 into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable
注意,这被认为是糟糕的做法:
insert into #temptable
select col1, col2, col3 from othertable
如果临时表的定义要更改,则代码可能在运行时失败。
我在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 table
INSERT INTO #TempTable(ID, Date, Name)
SELECT OtherID, OtherDate, OtherName FROM PhysicalTable