请教一个在存储过程里面创建全局临时表的问题
<p>代码如下:</p><p>declare @v_sql varchar(255)<br/>select @v_sql = "create table ##temp_user(userid varchar(20), username varchar(50))"<br/>exec(@v_sql)</p><p>执行后没反应。</p><p>在SQL command下执行:create table ##temp_user(userid varchar(20), username varchar(50)) 能生成临时表;</p><p>以上三句一起执行,不出错,但也没效果。</p> <p>代码1:<br/>declare @v_sql varchar(255)<br/>select @v_sql = "create table ##temp_user(userid varchar(20), username varchar(50))"<br/>exec(@v_sql)</p><p>代码2:<br/>create table ##temp_user(userid varchar(20), username varchar(50))</p><p>执行代码2,会建立一张临时表,当会话关掉后,该表将不存在,这个LZ知道<br/>执行代码1之后,查询##temp_user报##temp_user表不存在,给LZ下面一段代码,估计LZ就知道是怎么回事了<br/>if exists (select 1 from sysobjects<br/> where id = object_id('dbo.p_test')<br/> and type='P')<br/> drop procedure dbo.p_test<br/>go<br/>create procedure p_test<br/>as<br/>begin<br/> declare @v_sql varchar(255)<br/> select @v_sql = "create table ##temp_user(userid varchar(20), username varchar(50)) insert into ##temp_user values('123','123') select * from ##temp_user"<br/> exec(@v_sql)<br/>end<br/>go<br/>exec p_test<br/>实际上exec执行后,再去查询##temp_user表,此时该表就不存在了<br/></p>
页:
[1]