查看以下查询。
select *
into TempTable
from MainTable
select * from TempTable
WAITFOR DELAY '00:00:10'
drop table TempTable
执行此查询后,我打开其他窗口并执行查询:
select *
into TempTable
from MainTable
select * from TempTable
drop table TempTable
我收到以下错误:
数据库中已有一个名为“TempBucket”的对象。
假设它是存储过程的一部分,并且需要很长时间才能完成。如果再次调用此存储过程,则会发生此错误。如何解决此错误?
答案 0 :(得分:4)
我假设您使用MSSQL DBMS作为帖子的标签。 使用真正的临时表:使用“#”作为表名称的前缀。 使用此方法,临时表将仅存在于创建它的过程的范围内。
select *
into #TempTable
from MainTable
select * from #TempTable
实际上没有必要下降,但可能是更好的做法。
答案 1 :(得分:3)
试试这个 -
IF OBJECT_ID (N'tempdb.dbo.#TempTable', 'U') IS NOT NULL
DROP TABLE #TempTable
SELECT *
INTO #TempTable
FROM dbo.MainTable
SELECT *
FROM #TempTable