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

请教一个关于临时表的问题,立即给分!
1.   我在一个存储过程中动态生成了一个临时表#sspop,如果多个用户同时调用这个存储过程,会不会导致临时表数据冲突?数据不一致?

2.   调用完存储过程后,临时表会不会被自动释放?我在应用程序中还能不能操作临时表?


------解决方案--------------------
1. 我在一个存储过程中动态生成了一个临时表#sspop,如果多个用户同时调用这个存储过程,会不会导致临时表数据冲突?数据不一致?
如果每次动态生成,然后删除,不会有冲突,不删除就会有冲突.

2. 调用完存储过程后,临时表会不会被自动释放?我在应用程序中还能不能操作临时表?
调用完毕后不回释放.程序关闭或断开数据库后才会释放.

------解决方案--------------------
1. 我在一个存储过程中动态生成了一个临时表#sspop,如果多个用户同时调用这个存储过程,会不会导致临时表数据冲突?数据不一致?

2. 调用完存储过程后,临时表会不会被自动释放?我在应用程序中还能不能操作临时表?

-------------------------------------
1 不同的连接,即使是同名的临时表sql也会自动区分(用户自定临时表后系统再加些标识)
2 临时表是伴随连接的生命周期的,连接断开,临时表销毁
------解决方案--------------------
你试下不就知道了吗???问什么。。。。

create proc p_sw
as
create table #(id int)


exec p_sw

select * from #
------解决方案--------------------
还有个地方是

exec( 'create table #(id int) ')

select * from #

------解决方案--------------------
可以删除drop table #sspop
可以查找select * from #sspop
但要在删除之前查找