[Err] 42S01 - [SQL Server]数据库中已存在名为 '#temp' 的对象。临时表

时间:2021-08-25 20:48:20

问题描述:连续执行下列sql两次 ,会出现下面的错误信息

select identity(int,1,1) as idd,* into #temp from t_table;
select * from #temp where idd between 301 and 310;

[Err] 42S01 - [SQL Server]数据库中已存在名为 '#temp' 的对象。临时表

问题原因:

临时表在执行过一次就存在了名为 ‘#temp’ 的对象了
直接执行下面一行查询语句即可

问题处理:

查询临时表对象
SELECT * FROM tempdb.dbo.sysobjects WHERE name LIKE '%#%'

方法一:添加一行

IF OBJECT_ID('tempdb.dbo.#temp') IS NOT NULL DROP TABLE #temp;
select identity(int,1,1) as idd,* into #temp from t_table;
select * from #temp where idd between 301 and 310;

方法二:

1、新打开一个QUERY,复制代码进去重新执行,
2、断开链接,再次打开链接就可以继续执行