数据库——创建局部临时表和全局临时表

局部临时表与全局临时表区别与示例:

1、局部临时表(#开头)只对当前连接有效,当前连接断开时自动删除。 
2、全局临时表(##开头)对其它连接也有效,在当前连接和其他访问过它的连接都断开时自动删除。 
3、不管局部临时表还是全局临时表,只要连接有访问权限,都可以用drop table #Tmp(或者drop table ##Tmp)来显式删除临时表。

--create table #temp(num int primary key,pname varchar(20))//创建局部临时表,只对当前连接有效,当前连接断开时自动删除。

--create table ##temp(num int primary key,pname varchar(20))//创建全局临时表,当sql服务断开时删除。

原文地址:https://www.cnblogs.com/zzp-biog/p/9708343.html

时间: 2024-11-07 10:24:34

数据库——创建局部临时表和全局临时表的相关文章

临时表和全局临时表

临时表就是那些名称以井号 (#) 开头的表.如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表. 临时表不存储在当前数据库内,而是存储在系统数据库 tempdb 内. 全局临时表 以两个井号 (##) 开头的那些表名.在所有连接上都能看到全局临时表或者这样说只要这个全局临时表存在,那么用户创建会话后对所有的用户都是可见的.如果在创建全局临时表的连接断开前没有显式地除去这些表,那么只要所有其它任务停止引用它们,这些表即被除去.当创建全局临时表的连接断开后,新的任务不能再引用

sql server中的用户临时表和全局临时表的区别

临时表分为: 本地临时表,仅限于当前访问者访问,创建方法去如下:create table #TableName(表结构)储存于数据库tempdb内(硬盘),当前用户断开连接(把当前的),自动删除如果使用中不断开连接,且不需要该临时表请执行:drop table #TableName 全局临时表,所有访问用户访问,创建方法去如下:create table ##TableName(表结构)储存于数据库tempdb内,当所有访问用户断开连接,自动删除删除语句:drop table ##TableNam

全局临时表

全局临时表是以两个‘##’符号为前缀,并且它对所有会话可见的一种临时表.全局临时表一般用在需要向所有人共享数据的时候使用.下面是一个全局临时表的示例. -- 全局临时表 IF OBJECT_ID('tempdb.dbo.##Globals','U') IS NOT NULL DROP TABLE dbo.##Globals; GO -- 创建全局临时表 CREATE TABLE dbo.##Globals ( ID INT NOT NULL, VALUE NVARCHAR(50) NOT NUL

数据库创建表空间、临时表空、用户、授权

备注:oracle版本Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 说明:创建临时表空间注意关键字和创建表空间有所差别,语句类似 关于创建语句解说请查看:http://blog.chinaunix.net/uid-20802110-id-2105656.html 所列语句都是经过测试实战! 1.创建表数据空间 说明:该版本数据库创建表空间执行logging时报错,不执行logging,默认也是logging create ta

SQL 临时表的使用,本地和全局临时表

一.SQL中创建本地临时表 方法1: CREATE TABLE #本地临时表名称 或 CREATE TABLE ##全局临时表名称 方法2: SELECT * INTO #本地临时表名称 FROM 表名称 SELECT * INTO ##全局临时表名称 FROM 表名称 说明: 1.临时表其实就是放在tempdb 中的的一个用户表. 2.本地临时表用"#"开头,全局临时表用"##"开头,这种表在会话期间存在,会话结束时自动删除. 二.删除临时表 语法: DROP T

被Oracle全局临时表坑了

今天凌晨4点多钟,在客户现场的负责人打电话给我,说很奇怪,下载功能时快时慢.此下载功能非常复杂,之前一直是我优化,在半梦半醒中打开电脑,通过远程看着现场同事在PL/SQL developer中操作.执行同一条SQL,时快时慢,快的时候大概0.6s,慢的时候超过1分钟. 这条SQL有调用一个函数,功能是动态生成接近200条查询语句,SQL中都是有绑定变量的.是现场的测试环境,刚刚部署,心想应该不是数据库负载所致. 1. 抓取数据库AWR报告,完全没有压力,数据库服务器配置都是杠杠的.此刻心里有点乱

一次被Oracle全局临时表坑的个人心得

[e良师益友网]使用Oracle开发的时候很多时候遇到一些你意想不到的问题,往往在于细节方面出现了不可回避的错误,下面分享一个难忘的事件,这次中表明基础方面的知识真的很重要 那 是凌晨4点多钟,在客户现场的负责人打电话给我,说很奇怪,下载功能时快时慢.此下载功能非常复杂,之前一直是我优化,在半梦半醒中打开电脑,通过远程看 着现场同事在PL/SQL developer中操作.执行同一条SQL,时快时慢,快的时候大概0.6s,慢的时候超过1分钟. 这条SQL有调用一个函数,功能是动态生成接近200条

SQL Server数据库的存储过程中定义的临时表,真的有必要显式删除(drop table #tableName)吗?

本文出处:http://www.cnblogs.com/wy123/p/6704619.html 问题背景 在写SQL Server存储过程中,如果存储过程中定义了临时表,有些人习惯在存储过程结束的时候一个一个显式地删除过程中定义的临时表(drop table #tName),有些人又没有这个习惯,对于不明真相的群众或者喜欢思考的人会问,存储过程中定义的临时表,最后要不要主动删除,为什么?或者说是不是存储过程结束的时候删除临时表更加规范?不止一个人问过这个问题了,说实在话,本人之前确实不清楚,只

创建本地表和全局表

临时表有两种类型:本地表和全局表.它们在名称.可见性以及可用性上有区别.本地临时表的名称以单个数字符号(#)打头:它们仅对当前的用户连接可见的:当用户从Sql Server实例断开连接时被删除.全局临时表的名称以两个数字符号(##)打头,创建后对任何用户都是可见的,当所有引用该表的用户与服务器断开连接时被删除. 例如,创建temp表,则任何在数据库中有使用该表的安全权限的用户都可以使用该表.除非已将其删除.如果数据库回话创建了本地临时表#temp,则仅回话可以使用该表,会话断开连接后将该表删除,