几乎每次用到临时表,我都会大费一番周折,总是错误连连。
程序中建立本地临时表,似乎只有当推出系统后临时表才能自动删除;
但在断开连接之前,显示删除临时表也可以删除临时表,正是这种情况时而能够删除,时而运行中又会报错:临时表已存在;特别是当一个类中多个临时表同时出现时,临时表有时删除了,有时没有删除,查了很多相关资料,还是找不到对症的药。临时表的存在与否根本没个定数。郁闷!超级郁闷!
方法a: if object_id('tempdb.dbo.#tbname') is not null
drop table tempdb.dbo.#tbname
方法b: IF EXISTS(SELECT * FROM tempdb.dbo.sysobjects
WHERE NAME = '#TempDrugType')
BEGIN DROP TABLE #TempDrugType END
这两种情况通常都可以删除,但有时会报错:临时表不存在或者没有权限。目前还不知道如何解决。
有临时表的查询,在短时候内执行第2次,显示临时表已经存在, 当第一次查询完后,要等一段时间,再能执行第2次,才不会显示有错误,那么临时表,并没有随着SQL语句的结束而马上结束
经过反复试验,发现在用方法b删除临时表出错时,用方法a可以解决问题。