临时表使用方法

SQL SERVER2000中,建立临时表方式有3种:

1create table #table_name(field1 type,field2 type,..........)

     insert into #table_name values(..............)

     select * from #table_name

2create table tempdb.table_name(field1 type,field2 type,..........)

     insert into #table_name values(..............)

     select * from #table_name

3)select * into #temp from (select * from Func) A

   select * from #temp

   drop table #temp

注:

(1)临时表的特点为建立的临时表由创建者使用,多个人可以同时运行该条语句,而不必担心表名重复。当退出数据库或事务被提交时,表自动删除。建立的表需要手工删除,和普通的表的区别是:把表放在了数据库的一个临时空间里,如果不手工删除,当数据库重起时,数据库管理系统会自动将其删除。

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

(3)有另外一种临时表,创建方式:

declare @table_name table (field1 type,field2 type,.......... )  

这种临时表当语句结束时释放临时表一个会话可同时创建几个相同名字的表,但不能在同一条语句中声明几个同名的临时表。用法如下:

SET   QUOTED_IDENTIFIER   ON    
  GO  
  SET   ANSI_NULLS   ON    
  GO  
  create   proc   spGetTreeVar   (@ParentID   int   )  
  as  
  begin  
  set   nocount   on  
      /*
如果不是SQLSERVER2000可以用临时表*/  
  declare   @tmp1     table   (   ParentID   int   ,   ID   int   ,   isclass   int   )  
  declare   @tmp2     table   (   ParentID   int   ,   ID   int   ,   isclass   int   )  
  declare   @tmp3     table   (   ParentID   int   ,   ID   int   ,   isclass   int   )  
       
  insert   @tmp1   select   ParentID,ID   ,IsCls     from   Variables   where       ParentID   =   @ParentID   and   IsDelete   =   0  
  insert   @tmp3   select   ParentID,ID   ,IsCls     from   Variables   where       ParentID   =   @ParentID   and   IsDelete   =   0  
   
      /*
循环的次数等于树的深度*/  
  while   exists(select   *   from   @tmp1   where   isclass   =   1   )  
  begin  
  insert   @tmp2   select   a.ParentID,a.ID,a.IsCls     from   Variables   a,@tmp1   b   where       a.ParentID   =   b.ID   and   IsDelete   =   0  
          /*@tmp2
表中存本次查询的层次的所有结点*/  
  delete   from   @tmp1   where   IsClass   =   1    
          /*@tmp1
表中最终存的是叶子结点*/  
  insert   @tmp1   select   *   from   @tmp2  
          /*@tmp3
表中最保存每次查到的子孙*/  
  insert   @tmp3   select   *   from   @tmp2  
          delete   from   @tmp2  
  end      
  select   Distinct   Variables.*   from   Variables   inner   join   @tmp1   b   on   Variables.ID   =   b.ID    
  set   nocount   off  
  end  
   
  GO  
  SET   QUOTED_IDENTIFIER   OFF    
  GO  
  SET   ANSI_NULLS   ON    
  GO  

判断表明是否已存

判断普通表:

if exists(select * from dbo.sysobjects where id = object_id(N'表名') and OBJECTPROPERTY(id,N'IsUserTable')=1)

print 'exists'

IF (OBJECT_ID('表名') IS not NULL)

print 'exists'

 

判断临时表:

if object_id('tempdb..表名') is not null

print 'exists'

或者:if object_id('表名') is not null

print 'exists'

转载于:https://www.cnblogs.com/zhmore/archive/2008/08/09/1264109.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已安装nginx动态添加模块

说明:已经安装好的nginx,需要添加一个未被编译安装的模块,需要怎么弄呢? 具体:这里以安装第三方ngx_http_google_filter_module模块为例nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so…

linux内核开发_Linux 内核的代码仓库管理与开发流程简介

作者简介:老 U,致力于开源自由软件推广。原创雄文:由泰晓读者投递的各类社区原创好文。版权声明:本文最先发表于 “泰晓科技” 微信公众号,欢迎转载,转载时请在文章的开头保留本声明。入门 Linux 内核学习时…

Repeater,DataList,DataGrid 【转】

输出表: string a"ProviderMicrosoft.Jet.OLEDB.4.0;Data Sourcec:\\data.mdb;Persist Security InfoFalse;"; OleDbConnection cnnew OleDbConnection(a); OleDbCommand cmnew OleDbCommand("select * from test2",cn); cn.Open(); OleDbDataR…

Java中八种基本数据类型占用字节空间总结

一、Java四大数据类型分类 1、整型 byte 、short 、int 、long 2、浮点型 float 、 double 3、字符型 char 4、布尔型 boolean 二、八种基本数据类型 三、数据类型详细介绍 整型(byte、short、int、long) 虽然byte、short、int、long 数据类型…

Google编程题:最小操作数

给定一个原串和目标串,能对源串进行如下操作: 1.在给定位置插入一个字符 2.替换任意字符 3.删除任意字符 要求完成一下函数,返回最少的操作数,使得源串进行这些操作后等于目标串。源串和目标串长度都小于2000。动态创建的了二维…

jdbc连接mysql传参_将参数传递给JDBC PreparedStatement

我正在尝试为我的程序制作验证类。我已经建立了与MySQL数据库的连接,并且已经在表中插入了行。该表由firstName,lastName和userID领域。现在,我想通过构造函数的参数在数据库中选择特定的行。import java.sql.*;import java.sql.PreparedStat…

String类能被继承吗,为什么?

不能被继承,因为String类有final修饰符,而final修饰的类是不能被继承的。 Java对String类的定义: final修饰符的用法: 1.修饰类 当用final修饰一个类时,表明这个类不能被继承。final类中的成员变量可以根据需要设为…

Java实现折半查找(二分查找)的递归和非递归算法

Java二分查找实现,欢迎大家提出交流意见./***名称:BinarySearch*功能:实现了折半查找(二分查找)的递归和非递归算法.*说明:* 1、要求所查找的数组已有序,并且其中元素已实现Comparable<T>接口,如Integer、String等.* 2、非递归查找使用search();,递归查找使用sear…

webstorm 不知道手贱点了什么,有时候会自动删除分号

https://segmentfault.com/q/1010000009184137?_ea1845711 webstorm 不知道手贱点了什么&#xff0c;有时候会自动删除分号 webstorm javascript 繁忙的耗子 4月25日提问关注 4 关注收藏 0 收藏&#xff0c;470 浏览问题对人有帮助&#xff0c;内容完整&#xff0c;我也想…

mysql中的所有类型_mysql中常用的数据类型

MySQL是一种关系数据库管理系统&#xff0c;关系数据库将数据保存在不同的表中&#xff0c;而不是将所有数据放在一个大仓库内&#xff0c;这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策&#xff0c…

final和static的区别

很多时候会容易把static和final关键字混淆&#xff0c;static作用于成员变量用来表示只保存一份副本&#xff0c;而final的作用是用来保证变量不可变。看下面这个例子 每次打印的两个j值都是一样的&#xff0c;而i的值却是不同的。从这里就可以知道final和static变量的区别了。…

用Visual C#创建Windows服务程序

用Visual C#创建Windows服务程序一&#xff0e;Windows服务介绍&#xff1a;Windows服务以前被称作NT服务&#xff0c;是一些运行在Windows NT、Windows 2000和Windows XP等操作系统下用户环境以外的程序。在以前&#xff0c;编写Windows服务程序需要程序员很强的C或C功底。然而…

实现MySQL高可用群集配置_配置高可用性的MySQL服务器负载均衡群集

mysql -u root -pUSE mysqlclustertest;SELECT * FROM testtable;quit;SELECT查询出的结果应该依然是:mysql> SELECT * FROM testtable;——| i |——| 1 || 2 |——2 rows in set (0.17 sec)Ok,所有的测试都正常,现在让我们再次启动sql1.test.com节点&#xff1a;sql1.exam…

清除掉AD的相关属性!

今天有朋友问我怎么清除掉AD 的相关属性&#xff0c;由于他们的用户都设置了登录到属性&#xff0c;这样我们的用户就仅仅能登陆他须要设置的计算机。对于兴许规则的变更的时候&#xff0c;我们的管理员配置起来就比較复杂。他须要非常长的时间去一个一个清除掉相关的属性。这对…

java中String、StringBuffer、StringBuilder的区别

java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类&#xff0c;他们之间的区别也是经常在面试中会问到的问题。现在总结一下&#xff0c;看看他们的不同与相同。 三者共同之处: 都是final类,不允许被继承&#xff0c;主要是从性能和安全性上考虑的&#…

《Ext详解与实践》节选:自定义单元格的显示格式

有时候&#xff0c;需要在Grid中显示一个链接&#xff0c;或根据数字的大小显示不同的颜色&#xff0c;又或者使用固定格式显示记录编号等&#xff0c;这就需要自定义单元格的显示格式。在Ext的Grid可以很容易的实现自定义单元格的显示格式。在定义Grid的ColumnModel的时候&…

js学习总结----案例之多级菜单js版本

具体代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Document</title><style>*{margin:0;padding:0;font-size:14px;}ul,li{list-style:none;}.box{margin:10px;pad…

讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当 new 的时候, 他们的执行顺序

此题考察的是类加载器实例化时进行的操作步骤&#xff08;加载–>连接->初始化&#xff09;。 父类静态变量、 父类静态代码块、 子类静态变量、 子类静态代码块、 父类非静态变量&#xff08;父类实例成员变量&#xff09;、 父类构造函数、 子类非静态变量&…

转载:成功应用ERP的思路和方法分析

企业ERP的应用现状一是应用数量。据我不完全统计&#xff0c;时至今日&#xff0c;全国有一万多家企业在集成应用ERP&#xff0c;这和国家统计局统计提供的266,090个国有及规模以上非国有企业的总数相比&#xff0c;仅占百分之四。二是应用时间。从1981年应用第一套ERP到2007年…

mysql无法找到事件id100描述_解决“事件 ID ( 487 )的描述(在资源( Zend Optimizer )中)无法找到”...

事件类型: 错误事件来源: Zend Optimizer事件种类: 无事件 ID: 487日期: 2006-8-18事件: 0:17:36用户: N/A计算机: COMPUTER描述:事件 ID ( 487 )的描述(在资源( Zend Optimizer )中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能…