【发布时间】:2016-06-22 20:49:25
【问题描述】:
我在一个脚本中多次删除/创建临时表
IF OBJECT_ID('tempdb..#uDims') IS NOT NULL
DROP TABLE #uDims
select * into #uDims from table1
.... do something else
IF OBJECT_ID('tempdb..#uDims') IS NOT NULL
DROP TABLE #uDims
select * into #uDims from table2 -- >> I get error here
.... do something else
IF OBJECT_ID('tempdb..#uDims') IS NOT NULL
DROP TABLE #uDims
select * into #uDims from table3 -- >> and here
.... do something else
当尝试运行脚本时,我得到了
There is already an object named '#uDims' in the database.
关于第二个和第三个“select into...”
这显然是编译时错误。如果我逐段运行脚本,一切都会顺利进行。
这个问题有很多解决方法,但我想知道为什么 SSMS 对此感到不安。
【问题讨论】:
-
这是一个存储过程,所以没有GO。
-
This answer in dba.se 正确解释了问题
标签: sql-server ssms temp-tables