关于sql server临时表的应用

转载 2006年06月18日 16:12:00
关于sql server临时表的应用
<script type="text/javascript"><!-- google_ad_client = "pub-6960829636784292"; google_ad_width = 250; google_ad_height = 250; google_ad_format = "250x250_as"; google_ad_type = "text_image"; google_ad_channel =""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "6666CC"; google_color_url = "0000FF"; google_color_text = "6600FF"; //--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>


大家看我下面的存储过程,有兴趣一起讨论一下:

CREATE PROCEDURE dbo.Pub_GetPageData
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) -- 需要返回的列
as
declare @strSQL nvarchar(4000) -- 主语句

declare @strTmp varchar(110) -- 临时变量

Set @strSQL = 'select IDENTITY(int, 1,1) AS ID_Num,* into #MyTempTable from emp_vBasicinfobrowse order by nid asc'

exec @strSql

select * from #MyTempTable
GO

如果写成上面的那样,调用是提示 找不到 #MyTempTable

CREATE PROCEDURE dbo.qq
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) -- 需要返回的列
as
declare @strSQL nvarchar(4000) -- 主语句

declare @strTmp varchar(110) -- 临时变量

--Set @strSQL = 'select IDENTITY(int, 1,1) AS ID_Num,* into #MyTempTable from emp_vBasicinfobrowse order by nid asc'

--exec @strSql
select IDENTITY(int, 1,1) AS ID_Num,* into #MyTempTable from emp_vBasicinfobrowse order by nid asc
select * from #MyTempTable
GO

写成上面这样就ok,请问各位碰到这样的情况没,是怎么做的,希望能得到你的帮助,在线等。。。。



要么使用你第二种方法,要么像下面改一下第一种

CREATE PROCEDURE dbo.Pub_GetPageData
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) -- 需要返回的列
as
declare @strSQL nvarchar(4000) -- 主语句

declare @strTmp varchar(110) -- 临时变量

Set @strSQL = 'select IDENTITY(int, 1,1) AS ID_Num,* into #MyTempTable from emp_vBasicinfobrowse order by nid asc'

exec @strSql + ' select * from #MyTempTable'

GO



最后一句应该带()

exec (@strSql + ' select * from #MyTempTable')



我试了下楼主说的情况,在执行动态SQL语句中有领时表时,提示找不到该对象!





我也想知道原因,楼上说的是可以执行成功的!
退出来怎么就不可了呢?



动态语句创建的临时表,在执行完后系统就自动清除了,
可以在exec语句中创建,并select



declare @num int, @sql nvarchar(4000), @tbName varchar(100)
set @tbName='tb'

set @sql='select @a=count(*) from dbo.sysobjects where id = object_id(N''[dbo].[' + @tbName + ']'') and OBJECTPROPERTY(id, N''IsUserTable'') = 1'
exec sp_executesql @sql,N'@a int output',@num output

if @num=1
print '存在表'
else
print '不存在'





CREATE PROCEDURE dbo.Pub_GetPageData
@tblName varchar(255), -- 表名
@strGetFields varchar(1000) -- 需要返回的列
as
declare @strSQL nvarchar(4000) -- 主语句

declare @strTmp varchar(110) -- 临时变量

Set @strSQL = 'select IDENTITY(int, 1,1) AS ID_Num,* into #MyTempTable from emp_vBasicinfobrowse order by nid asc'

Set @strSql = @strSql + ' select * from #MyTempTable'
exec @strSql

GO

相关文章推荐

SQL Server中的临时表的应用

文章转载自:  SQL Server中的临时表的用法     http://www.studyofnet.com/news/171.html   一。临时表介绍 临时表在运行被创建的,虽说它的名字叫...

SQL Server 临时表的删除

1、错误的删除操作: --错误的临时表删除操作,因为所在数据库不同 IF  EXISTS (SELECT * FROM sysobjects WHERE object_id = OBJECT_...
  • yybj
  • yybj
  • 2014-06-05 17:22
  • 472

SQL Server 表变量与临时表区别

问题 1:为什么在已经有了临时表的情况下还要引入表变量? 解答 1:与临时表相比,表变量具有下列优点: • 如 SQL Server 联机丛书“表”(Table) 一文中所述,表...

SQL Server中的临时表和表变量

在SQLServer的性能调优中,有一个不可比拟的问题:那就是如何在一段需要长时间的代码或被频繁调用的代码中处理临时数据集?表变量和临时表是两种选择。记得在给一家国内首屈一指的海运公司作SQLServ...

SQL Server中临时表与表变量的区别

 SQL Server中临时表与表变量的区别 我们在数据库中使用表的时候,经常会遇到两种使用表的方法,分别就是使用临时表及表变量。在实际使用的时候,我们如何灵活的在存储过程中运用它们,...

sql server 表变量和临时表

转载自:http://www.cnblogs.com/hliq/archive/2011/06/21/2087152.html 临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自...

SQL Server中 临时表 与 表变量的区别 1

什么情况下使用表变量?什么情况下使用临时表?表变量:    DECLARE @tb  table(id   int   identity(1,1), name   varchar(100)) ...

SQL Server 临时 表的用法

临时表有两种类型:本地临时表以一个井号 (#) 开头的那些表名。只有在创建本地临时表的连接上才能看到这些表,链接断开时临时表即被删除(本地临时表为创建它的该链接的会话所独享)或者这样说局部临时表是有当...

sql server 表变量和临时表

临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。 临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅...

Oracle与SQL Server临时表

在写非常复杂的业务逻辑时,不免用到临时表。临时表生成很少的日志,每种数据库又都会对其进行特定的处理,使它很适合保存事务或会话期间的中间结果集。 Oracle临时表保存的数据只对当前会话...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)