2

看看下面的查询。

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”的对象。

假设它是存储过程的一部分,需要很长时间才能完成。如果再次调用此存储过程,则会发生此错误。如何修复此错误?

4

2 回答 2

4

我假设您通过针对您的帖子的标签使用 MSSQL DBMS。使用真正的临时表:在表名前加上“#”前缀。使用此方法,临时表将仅存在于创建它的过程范围内。

select * 
into #TempTable
from MainTable

select * from #TempTable

实际上不需要下降,但可能是更好的做法。

于 2013-08-13T11:22:55.973 回答
3

试试这个——

IF OBJECT_ID (N'tempdb.dbo.#TempTable', 'U') IS NOT NULL
   DROP TABLE #TempTable

SELECT *
INTO #TempTable
FROM dbo.MainTable

SELECT *
FROM #TempTable
于 2013-08-13T11:28:41.273 回答