码迷,mamicode.com
首页 > 数据库 > 详细

SQL学习笔记——临时表不同创建方式的区别

时间:2017-09-16 18:52:35      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:div   into   pre   img   color   分享   ble   sele   code   

 

问题:在存储过程中使用临时表时,不Create临时表就会报错。

分析了下,总结了临时表创建方式的区别。

创建临时表有两种方法:

方法一

  create  table  #临时表名

  (  

      字段1 约束条件,
      字段2 约束条件,
      ……

  )

  create  table  ##临时表名

  (  

      字段1 约束条件,
      字段2 约束条件,
      ……

  )

方法二

   select  *  into  #临时表名  from 你的表;
   select  *  into  ##临时表名  from 你的表;

注:以上的#代表局部临时表,##代表全局临时表

在存储过程中使用时的区别:

存储过程中有时会将sql语句先拼接成一个字符串,然后用exec执行,这时候如果在字符串中用第二种方式创建临时表就会报错(找不到该临时表),只能用第一种方式创建好临时表以后再将数据插入。

 

示例:

1.直接执行sql语句,两种方式都可以

1 select Name into #tStudent from Test_student
2 select * from #tStudent

1 create table #tStudent
2 (
3     Name varchar(100)
4 )
5 
6 insert into #tStudent select Name from Test_student
7 select * from #tStudent

执行结果一样,如下图

技术分享

 

2.将sql语句拼接为字符串,则只能使用第一种方式

1 declare @outsql varchar(4000)
2 set @outsql = select sName into #tStudent from Test_student
3 exec (@outsql)
4 select * from #tStudent

这样会报错,如下

技术分享

 

1 declare @outsql varchar(4000)
2 create table #tStudent
3 (
4     sName varchar(100)
5 )
6 set @outsql = insert into #tStudent select Name from Test_student
7 exec (@outsql)
8 select * from #tStudent

这样可以正确执行,如下图

技术分享

 

SQL学习笔记——临时表不同创建方式的区别

标签:div   into   pre   img   color   分享   ble   sele   code   

原文地址:http://www.cnblogs.com/uu2013/p/7531839.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!