当前位置: 代码迷 >> Sql Server >> 有关sql临时表的有关问题
  详细解决方案

有关sql临时表的有关问题

热度:26   发布时间:2016-04-24 10:21:41.0
有关sql临时表的问题。
在一个存储过程中,我建立了一个临时表,
在存储过程的最后,我删除了这个临时表。
我的问题是,当很多用户调用这个存储过程的时候,
我如果避免这个临时表的存在而出错?
而且我也不能轻易删除他,因为这意味着,某个用户的运算还没有结束。
------解决方案--------------------
在过程中加上 临时表的存在性测试,
已经存在不再创建。
------解决方案--------------------
#这种是会话级别的,用完就会消失,除非你的会话还处于活动,不建议手动删除临时表。说的太深你也不懂,跟页分配有关,总的来说,保证程序的逻辑正确,就不用删除#这种临时表。
------解决方案--------------------
如果用的不是全局的临时表(即##[表名]的),没问题的.
多用户调用这个存储过程时,会在不同进程里建自己的临时表,其互不干扰.

------解决方案--------------------
引用:
#这种是会话级别的,用完就会消失,除非你的会话还处于活动,不建议手动删除临时表。说的太深你也不懂,跟页分配有关,总的来说,保证程序的逻辑正确,就不用删除#这种临时表。


不用删除#临时表,创建前先判断是否存在,若存在先drop掉再创建

IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'#A') AND type in (N'U'))
DROP TABLE #A

  相关解决方案