请教一个关于临时表的问题,立即给分!
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
但要在删除之前查找