临时表 是否存在

原创 2011年01月11日 16:45:00

1.在SQL SERVER中,用select object_id('Tempdb..#TempTable')该语句可判断一个临时表是否已经建立。(已建立返回值为一个整数,未建立则返回Null值)

Tempdb 是表示存临时表的数据库

我们可在建立临时表前先用以下语句判断临时表是否已存在,当已存在时就删除该临时表。

if not (select object_id('Tempdb..#TempTable')) is null drop table #TempTable

eg:if not (select object_id('Tempdb..#1234')) is null drop table #1234  写法更简单  三种功能是一样的

   IF Exists (select * from tempdb.dbo.sysobjects where id=object_id(N'Tempdb..#1234')) drop table #1234

   IF Exists (select * from tempdb..sysobjects where id=object_id(N'Tempdb..#1234')) EXECUTE('DROP TABLE #1234')

2.临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。

本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。

全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

3.永久表 id = object_id(N'[dbo].[DH_SJMT]')

  if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[DH_SJMT]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[DH_SJMT]

4.  select * from dbo.sysobjects 查询永久表 名称。name/id/xtype 一般用户创建的 xtype='U'

    select [name] from tempdb..sysobjects 查询临时表 名称。name/id/xtype 一般用户创建的 xtype='U'

 

 

5。案例分析

 

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

drop table [dbo].[tempkh]

GO

//系统自带的脚步语句 导出

CREATE TABLE [dbo].[tempkh] (

[stypeno] [varchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,

[colorid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL 

) ON [PRIMARY]

GO

//功能相同 判断是否存在 

if exists (select * from dbo.sysobjects where objectproperty(object_id(N'[dbo].[tempkh]'), N'IsUserTable') = 1)   --'istable') = 1)

drop table [dbo].[tempkh]

go  

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

存储过程实例 判断临时表是否存在 循环添加主外键两张表数据

数据结构是 主表 ,外键表。两张一对多的关系,因为数据库参数不能接收一个数据集,所以就用临时表。 两张表 数据是Excel 中取出来的。 因为要求是不能用事务,所以都是自己处理 中途出错,导...

sqlserver判断库、表、列、临时表、存储过程、视图、函数是否存在的sql

sqlserver判断库、表、列、临时表、存储过程、视图、函数是否存在的sql

Sql中判断"数据库"、"表"、"临时表"、"存储过程"和列"是否存在

--判断数据库是否存在 IF EXISTS (SELECT * FROM MASTER..sysdatabases WHERE NAME = '库名') PRINT 'exists ' e...

存储过程中判断临时表是否已经存在方法

临时表就是那些名称以井号 (#) 开头的表。如果当用户断开连接时没有除去临时表,SQL Server 将自动除去临时表。临时表不存储在当前数据库内,而是存储在系统数据库 tempdb 内。 临时...

orcl临时表

  • 2014-11-13 00:05
  • 484B
  • 下载

Oracle 临时表用法汇总

  • 2015-01-09 09:57
  • 71KB
  • 下载

存在多个系统临时表空间时,DB2如何选择?

DB2中如果有多个系统临时表空间,那么到底会用到哪一个呢?

Oracle中的临时表讲解

  • 2008-07-07 20:44
  • 44KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)