临时表 是否存在

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  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值