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

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

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


当前回答

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

其他回答

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

——创建临时表

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

——向临时表中插入值

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

查询一个临时表[这将只在同一个会话/实例中工作,而不是在其他用户会话实例中]

SELECT * FROM #MyTempEmployeeTable

——删除temp表中的值

DELETE FROM #MyTempEmployeeTable

——删除一个临时表

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

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

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;
SELECT  ID , Date , Name into #temp from [TableName]

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

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