临时表 是否存在

原创 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  

SQL 中 判断 表 或 临时表 是否 存在

1、判断数据表是否存在    方法一: use yourdb; go if object_id(N'tablename',N'U') is not null print '存在' else prin...
  • jindou910101
  • jindou910101
  • 2013年06月08日 09:51
  • 634

MySQL临时表的简单用法 在大数据量时有时会加快查询速度

当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后在这些表运行查询。...
  • QQQQQQ654
  • QQQQQQ654
  • 2017年03月22日 00:29
  • 1029

判断sqlite数据库中表是否存在的方法

判断数据库表是否存在 sql语法很简单 就一句话 SELECT count(*) FROM sqlite_master WHERE type='table' AND name='tableName';...
  • u011909538
  • u011909538
  • 2013年12月02日 11:32
  • 13172

SQL Server判断临时表是否存在

1 判断数据库是否存在 Sql代码 if exists (select * from sys.databases where name = ’数据库名’)    drop database ...
  • qtvb1987
  • qtvb1987
  • 2014年12月10日 13:49
  • 816

[转]SQL判断临时表是否存在

判断临时表是否存在 Way 1 if(exists(select name from tempdb..sysobjects where name like'%temptab%' and type=...
  • Polly_YF
  • Polly_YF
  • 2016年02月25日 17:42
  • 336

Sqlite中判断表、字段是否存在的方法

Sqlite中判断表、字段是否存在的方法 标签: sqliteandroid判定是否存在某字段 2014-12-24 16:25 1158人阅读 评论(0) 收藏 举报  分...
  • linuxheik
  • linuxheik
  • 2017年01月20日 11:33
  • 558

判断数据表,临时表,视图是否存在

1、判断数据表是否存在   方法一: use yourdb; go if object_id(N'tablename',N'U') is not null print '存在' else  pri...
  • saga_gallon
  • saga_gallon
  • 2016年09月06日 14:31
  • 182

JDBC 如何判断一张表是否存在

今天
  • u013025479
  • u013025479
  • 2014年04月09日 16:12
  • 3848

sql两种创建临时表 验证存在于删除

--创建、删除临时表 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 ...
  • y1535623813
  • y1535623813
  • 2017年06月29日 09:39
  • 150

Sqlite中判断表、字段是否存在的方法

sqlite会自动维护一个系统表sqlite_master,该表存储了我们所创建的各个table, view, trigger等等信息。 sqlite_master表数据字段: type:...
  • wuyou1336
  • wuyou1336
  • 2016年12月20日 22:56
  • 7482
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:临时表 是否存在
举报原因:
原因补充:

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