king19 发表于 2007-3-20 10:01:32

请教一个在存储过程里面创建全局临时表的问题

<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&nbsp;command下执行:create table ##temp_user(userid varchar(20), username varchar(50))&nbsp;&nbsp;&nbsp; 能生成临时表;</p><p>以上三句一起执行,不出错,但也没效果。</p>

guilber 发表于 2007-3-22 12:52:42

<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/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; where id = object_id('dbo.p_test')<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and type='P')<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; drop procedure dbo.p_test<br/>go<br/>create procedure p_test<br/>as<br/>begin<br/>&nbsp; declare @v_sql varchar(255)<br/>&nbsp; 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/>&nbsp; exec(@v_sql)<br/>end<br/>go<br/>exec p_test<br/>实际上exec执行后,再去查询##temp_user表,此时该表就不存在了<br/></p>
页: [1]
查看完整版本: 请教一个在存储过程里面创建全局临时表的问题

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com