判断如果存在临时表,就drop临时表

时间:2021-10-10 04:49:38
select * into #dsd from tb

if object_id('#dsd') is not null drop table  #dsd

select * into #dsd from tb2


if object_id('#dsd') is not null drop table  #dsd
这个语句对临时表貌似没有效果。。。。


6 个解决方案

#1



if object_id('tempdb.dbo.#test') is not null
 drop table #test  --删除临时表  

貌似CSDN上经常有人写测试数据的时候都写过了。

#2


在sqlserver创建用户临时表和系统临时表的方法,及两者的区别?
用户临时表:create table #xx(ID int, IDValues int)
系统临时表:create table ##xx(ID int, IDValues int)

区别:
用户临时表只对创建这个表的用户的Session可见,对其他进程是不可见的.
当创建它的进程消失时这个临时表就自动删除.

系统临时表对整个SQL Server实例都可见,但是所有访问它的Session都消失的时候,它才会自动删除.

#3


if object_id('tempdb.dbo.#dsd') is not null drop table dbo.#dsd

#4


本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。

全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

如果没有特别的必要,人为控制删除可以省略。

取自联机丛书

#5


tempdb..#

#6


if object_id( 'tempdb..#dsd') is not null drop table dbo.#dsd
楼主朋友,注意一下红色部分。tempdb..不能省呀。

#1



if object_id('tempdb.dbo.#test') is not null
 drop table #test  --删除临时表  

貌似CSDN上经常有人写测试数据的时候都写过了。

#2


在sqlserver创建用户临时表和系统临时表的方法,及两者的区别?
用户临时表:create table #xx(ID int, IDValues int)
系统临时表:create table ##xx(ID int, IDValues int)

区别:
用户临时表只对创建这个表的用户的Session可见,对其他进程是不可见的.
当创建它的进程消失时这个临时表就自动删除.

系统临时表对整个SQL Server实例都可见,但是所有访问它的Session都消失的时候,它才会自动删除.

#3


if object_id('tempdb.dbo.#dsd') is not null drop table dbo.#dsd

#4


本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。

全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

如果没有特别的必要,人为控制删除可以省略。

取自联机丛书

#5


tempdb..#

#6


if object_id( 'tempdb..#dsd') is not null drop table dbo.#dsd
楼主朋友,注意一下红色部分。tempdb..不能省呀。