MSSQL创建临时表的两种方法
2013-07-13 13:54
225 查看
下面是创建临时表的两种方法:
第一种方法(全新创建)——
create table #t(uid int,name varchar(100),sex varchar(100),city varchar(100));
详解:
create table意为创建表;
#t,意为表名是t,加#号,表示此表为临时表而非实体表;
括号中为字段定义,即字段名,类型,长度,各字段用英文逗号分隔。
第二种方法(复制创建)——
select uid,name,sex,city into #t from [users] where 1=2
详解:
select uid,name,sex,city意为选择这些字段;
into #t 意为插入到一个临时表中,表名为t,#号是表示临时表而非实体表;
from [users]表示创建的临时表是从表名为users的表中去复制;
where 1=2表示只复制表users的结构而不复制表中的数据,假如写为1=1则表示通过复制表结构来创建临时表的同时还要复制相关字段的所有数据。
我们在处理SQL查询的时候,往往需要创建临时表,多数情况下,表结构是一样的(或者部分字段一样),那么采用第二种方法创建无疑是最快最好的。(如果字段全部一样,字段就用*星号表示,若仅选择其中几个字段,则可以select uid,name,sex即可)。
如果临时表结构与库中现有表没有较多相似,则选择第一种方法来创建。
大家有什么好的方法,欢迎跟帖,或批评指正,3Q
第一种方法(全新创建)——
create table #t(uid int,name varchar(100),sex varchar(100),city varchar(100));
详解:
create table意为创建表;
#t,意为表名是t,加#号,表示此表为临时表而非实体表;
括号中为字段定义,即字段名,类型,长度,各字段用英文逗号分隔。
第二种方法(复制创建)——
select uid,name,sex,city into #t from [users] where 1=2
详解:
select uid,name,sex,city意为选择这些字段;
into #t 意为插入到一个临时表中,表名为t,#号是表示临时表而非实体表;
from [users]表示创建的临时表是从表名为users的表中去复制;
where 1=2表示只复制表users的结构而不复制表中的数据,假如写为1=1则表示通过复制表结构来创建临时表的同时还要复制相关字段的所有数据。
我们在处理SQL查询的时候,往往需要创建临时表,多数情况下,表结构是一样的(或者部分字段一样),那么采用第二种方法创建无疑是最快最好的。(如果字段全部一样,字段就用*星号表示,若仅选择其中几个字段,则可以select uid,name,sex即可)。
如果临时表结构与库中现有表没有较多相似,则选择第一种方法来创建。
大家有什么好的方法,欢迎跟帖,或批评指正,3Q
相关文章推荐
- oracle两种临时表的创建及使用方法
- 关于java基础类型与引用类型内存存储问题,以及string.intern()方法(String两种创建方式的区别)
- Java 创建线程的两种方法
- String 的两种创建方法及存储方式
- 创建临时文件的简单方法
- 创建Java线程的两种方法
- Oracle两种临时表的创建与使用详解
- C++创建对象的两种方法
- Java Notes: Java的多线程创建的两种方法以及Race Condition的解释
- dom4j 两种创建XML Document方法中命名空间的差异!
- java中创建String类型对象的两种方式以及在使用equals()和“==”两种方法时的区别
- Oracle两种临时表的创建
- java 创建多线程两种方法比较
- JAVA中创建线程对象的两种方法:继承Thread和实现Runable
- [转]linux创建链接文件的两种方法
- java创建线程的两种方法比较
- sql两种临时表的创建
- Java创建线程的两种方法比较
- VBS创建二进制文件的两种方法
- Extjs中Model的两种创建方法和三种实例化方法