在创建临时表并声明数据类型之后,将数据插入临时表
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
insert #temptable
select idfield, datefield, namefield from yourrealtable
创建临时表之后,你只想做一个正常的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 into #temptable (col1, col2, col3)
select col1, col2, col3 from othertable
请注意,这被认为是穷人的做法:
insert into #temptable
select col1, col2, col3 from othertable
如果临时表的定义发生更改,则代码在运行时可能会失败。
SELECT ID , Date , Name into #temp from [TableName]
正确的查询:
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
我在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 OriginalTable
你已经完成了它之后,你再次尝试建立它之前不要忘记DROP
临时表:
DROP TABLE #TempTable
我喜欢这个,因为我不需要'CREATE'#TempTable' – MAbraham1 2015-02-23 20:52:58
SELECT *
INTO #TempTable
FROM table
这里最简单的答案。你也可以使用dbo.MyTable,它将是一个永久表。容易peasy – Fandango68 2017-01-23 07:17:37
节奏的基本操作郭宝宏表如下,修改和按您的要求使用,
- 创建临时表
CREATE TABLE #MyTempEmployeeTable(tempUserID varchar(MAX), tempUserName varchar(MAX))
- 值插入到一个临时表
INSERT INTO #MyTempEmployeeTable(tempUserID,tempUserName) SELECT userid,username FROM users where userid =21
- QUERY TEMP TABLE [这将只在同一会话/实例中工作,不在其他用户会话实例中]
SELECT * FROM #MyTempEmployeeTable
- DELETE VALUE IN TEMP表
DELETE FROM #MyTempEmployeeTable
- DROP临时表
DROP TABLE #MyTempEmployeeTable
虽然我认识到这是一个临时表,我仍然不会推荐有人使用varchar(MAX)。 – 2018-02-08 18:41:40
@bp_这是一个广义的示例片段,它解释了用户,用户可以根据他们的应用程序需求指定数据类型和大小。 – 2018-02-08 21:10:32
我已经提供了两种方法来解决同样的问题,
解决方案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
虽然我认识到这是一个临时表,但我仍然不会推荐使用varchar(MAX)。 – 2018-02-08 18:43:22
此答案与问题无关。你从其他地方获取这些信息。删除'new_acc_no','unit_id ='0007'','group by','count(new_acc_no)> 1'等等将转换成以下精确副本的答案:http://stackoverflow.com/a/15762663/ 1476885 – Zanon 2015-08-10 20:00:59