SQL Server2000教程 SQL Server2005教程 SQL Server2008教程 SQL SERVER2012教程
返回首页

SQL SERVER 临时表与表变量的使用方法

时间:2010-06-12 10:04来源:未知 作者:admin 点击:我要投稿  高质量的ASP.NET空间,完美支持1.0/2.0/3.5/4.0/MVC等

SQL SERVER的临时表有本地临时表和全局临时表之分,在联机丛书中这样描述:

有本地和全局两种类型的临时表,二者在名称、可见性和可用性上均不相同。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 Microsoft® SQL Server™ 2000 实例断开连接时被删除。全局临时表的名称以数学符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。


在存储过程中创建的本地临时表,相当于存储过程的变量,只在存储过程内可见,而在前台程序中创建的本地临时表,就和微软联机丛书中所写的一样,是对当前的用户连接可见。了解了这些,可以在不同场合不同需求下使用不同的方法来创建本地临时表,这样,会使临时表发挥它最大的用处。
 

  1.     
  2. /*****************表变量********************/    
  3. declare @t table(    
  4. cataid int    
  5. )    
  6.   
  7. insert into @t select a.cataid from f_getchlid(27,'5961051') a    
  8. select top 10 favorites.*,multicata.cataname    
  9. from favorites left outer join multicata on favorites.cataid=multicata.cataid    
  10. where favorites.userid='5961051' and favorites.cataid in (    
  11. select * from @t)    
  12.   
  13.   
  14. /****************临时表************************/    
  15. 方法一、    
  16. select a.cataid into #t from f_getchlid(27,'5961051') a    
  17. select top 10 favorites.*,multicata.cataname    
  18. from favorites left outer join multicata on favorites.cataid=multicata.cataid    
  19. where favorites.userid='5961051' and favorites.cataid in (    
  20. select * from #t)    
  21. drop table #t    
  22.   
  23.   
  24. 方法二、    
  25. create table #t (    
  26. cataid int    
  27. )    
  28. insert into #t select a.cataid from zhaoguoguang.f_getchlid(27,'5961051') a    
  29. select top 10 favorites.*,multicata.cataname    
  30. from favorites left outer join multicata on favorites.cataid=multicata.cataid    
  31. where favorites.userid='5961051' and favorites.cataid in (    
  32. select * from #t)    
  33. drop table #t  

 

本站推荐文章:
本站热点文章:
顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色 情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片