SQL2008 已删除了临时表为什么还是会提示已存在

写了查询语句:
declare @a varchar(10)
set @a=a
if @a is null
begin
if object_id('tempdb..#1') is not null
drop table #1
select * into #1 from table_f
end
else
begin
if object_id('tempdb..#1') is not null
drop table #1
select * into #1 from table_f where a=@a
end

运行的时候会提示:数据库中已存在名为‘#1’的对象

临时表前面不要加数据库前缀,这种表不属于数据库,也没有系统信息

似乎lz只注意到我的第一句话,对于没有系统信息这一句并不是很了解,其实临时表的删除,不能用系统表来进行判断,你可以直接先drop,然后创建,默认情况下,这种drop是不会影响存储过程的继续执行的
温馨提示:内容为网友见解,仅供参考
无其他回答

sql server中的临时表与普通表有什么区别?
说明:(1)、临时表其实是放在数据库tempdb里的一个用户表;(2)、TempTableName必须带“#”,“#"可以是一个或者两个,以#(局部)或##(全局)开头的表,这种表在会话期间存在,会话结束则自动删除;(3)、如果创建时不以#或##开头,而用tempdb.TempTable来命名它,则该表可在数据库重启前一直存在。

sql 2000临时表只能使用一次
没有你说的东西,由于临时表当实例连接断开的时候自动删除,所以在查询分析器中运行,只要不关闭查询分析器,创建的临时表应该还存在,但是查询分析器有个选项是"查询执行后断开连接",默认是不选择的,如果你选择了,每运行一个语句就断开连接,所以之前创建的临时表将会被删除,你分开执行语句,第二句就不能访...

浅析SQL server 临时表
局部临时表,如#tempTable,仅在当前会话中创建并可见,当你在另一个查询中尝试访问时,如新建查询2中尝试查询#tempTable,会提示错误,因为这是会话特定的。而全局临时表,如##tempTable,其生命周期扩展到了所有会话,所以在不同查询中可以共享数据,但使用后需手动通过drop table命令删除,以避免资源占...

SQL Server 2008数据库中的记录用delete语句删除后能否恢复
呵呵,如果你有删除之前做过备份,那么可以从备份里面恢复。如果你的数据库模式是完全或者大容量日志,也可能可以恢复,据说可以从日志中恢复数据,但是,我不知道方法。一般操作之前,可以先按delete的条件select一次数据,符合要求后再改成delete。或者干脆先将要delete的数据select into一张临时表,检查无误后再drop掉临时表。

在sql server管理中如何删除临时表
其中Id是自增字段,第一条记录是1,第二条记录是2,自动增加,这个一般用来作标识,可以循环,其他字段是实际上循环时要取用的数据。3、然后插入数据。4、接着用一个循环,取出数据,并进行相应逻辑处理。5、最后要删除这个临时表,注意删除前一般都要判断一下这个表是否存在,就完成了。

临时表和全局临时表有什么区别?
事务临时表的话,当事务结束的时候,就会清空这个事务临时表。所以,当我们在数据库临时表中插入数据后,只要事务没有提交的话,该表中的数据就会存在。但是,当事务提交以后,该表中的数据就会被删除。而且,这个变化不会在重做日志中显示。 具体事务临时表与会话临时表有什么区别,我们在介绍完会话临时表后会详细介绍。

SQL server2008 临时表tempdb如何自动释放存储空间
所有其它本地临时表在当前会话结束时自动除去。全局临时表在创建此表的会话结束且其它任务停止对其引用时自动除去。任务与表之间的关联只在单个 Transact-SQL 语句的生存周期内保持。换言之,当创建全局临时表的会话结束时,最后一条引用此表的 Transact-SQL 语句完成后,将自动除去此表。 在存储过程或...

在数据库中临时表什么时候会被清除呢
2. 由于引擎不同(内存中表引擎为 heap,磁盘中表引擎则跟随 internal_tmp_disk_storage_engine 的配置),本次实验写磁盘的数据量和 实验 05 中使用内存的数据量不同。3. 如果临时表要使用磁盘,表引擎配置为 InnoDB,那么即使临时表在一个时间很短的 SQL 中使用,且使用后即释放,释放后也会刷...

sql server 2008中存储过程怎么解密
如果第二个参数使用1的话,会给出该存储过程的一些提示。--版本2.0*\/SET NOCOUNT ONIF @revfl = 1BEGINPRINT '警告:该存储过程会删除并重建原始的存储过程。'PRINT ' 在运行该存储过程之前确保你的数据库有一个备份。'PRINT ' 该存储过程通常应该运行在产品环境的一个备份的非产品环境下。'PRINT ' 为了运行...

sql 如何用临时表优化性能
它存储所有 tmp 表。不运行手动运行 OPTIMIZE TABLE,表空间文件就会不断增长。如果你不能使用 OPTIMIZE,那么唯一能将 ibtmp1 大小缩小为零的方法,就是重新启动服务器。幸运的是,即使文件无法减小,在执行查询后,临时表也会自动删除,表空间可回收使用。现在,我们想一想以下情境:存在未优化的查询,...

相似回答