日期:2014-05-18  浏览次数:20684 次

多用戶執行存儲過程,臨時表的使用~
存儲過程產生一些數據信息,我把它存放在T1中,以供它用.
每次存放前都:if   object_id( 'T1 ')   is   not   null  
                                    drop   table   T1
而后才是insert   動作。
--------------
問題是:
1,如果我把T1創建為臨時表,那在存儲過程執行完畢后,其中信息也隨之丟失.其他地方肯定是獲取不了信息的~
2.如果創建為物理表,又存在多用戶操作同一T1的危險。。

請教高手,如此問題該如何解決??


------解决方案--------------------
1,如果我把T1創建為臨時表,那在存儲過程執行完畢后,其中信息也隨之丟失.其他地方肯定是獲取不了信息的~

在存储过程里面将结果集返回:
select * from #臨時表


2.如果創建為物理表,又存在多用戶操作同一T1的危險。

显然不能用物理表。
------解决方案--------------------
我以前是这么处理这种状况的
1.在存储过程中创建动态表名的物理表,确保多用户不会操作同一表
2.在外面调用完成后删除表
--把在存储过程中建的表名传出去,以便你能正确使用和删除。