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

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

1、判断数据表是否存在 方法一: use yourdb;

go if object_id(N'tablename',N'U') is not null

print '存在'

else

print '不存在'

例如:use fireweb;

go if object_id(N'TEMP_TBL',N'U') is not null

print '存在'

else

print '不存在'   方法二: USE [实例名]

GO IF EXISTS  (SELECT  * FROM dbo.SysObjects WHERE ID = object_id(N'[表名]') AND OBJECTPROPERTY(ID, 'IsTable') = 1)

PRINT '存在'

ELSE

PRINT'不存在'

 

例如:use fireweb;

go IF EXISTS  (SELECT  * FROM dbo.SysObjects WHERE ID = object_id(N'TEMP_TBL') AND OBJECTPROPERTY(ID, 'IsTable') = 1)

PRINT '存在'

ELSE PRINT'不存在'

 

2、临时表是否存在: 方法一:use fireweb;

go if exists(select * from tempdb..sysobjects where id=object_id('tempdb..##TEMP_TBL'))

PRINT '存在'

ELSE

PRINT'不存在'

 

方法二:use fireweb;

go if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#TEMP_TBL') and type='U')

PRINT '存在'

ELSE

PRINT'不存在'

 

方法三: use yourdb;

go if object_id(‘tablename’) is not null print '存在'

else

print '不存在'

 
3、sql server也可以在sybase 上是在sysobjects中查找
select 目标名 from 数据库..sysobjects where name='目标名' 
sysobjects 在数据库内创建的每个对象(约束、默认值、日志、规则、存储过程等)在表中占一行。只有在 tempdb 内,每个临时对象才在该表中占一行。

列名 数据类型 描述 
name sysname 对象名。 
Id int 对象标识号。 
xtype char(2) 对象类型。可以是下列对象类型中的一种: 
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
S = 系统表
TF = 表函数
TR = 触发器
U = 用户表
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程
 
uid smallint 所有者对象的用户 ID。 
info smallint 保留。仅限内部使用。 
status int 保留。仅限内部使用。 
base_schema_
ver int 保留。仅限内部使用。 
replinfo int 保留。供复制使用。 
parent_obj int 父对象的对象标识号(例如,对于触发器或约束,该标识号为表 ID)。 
crdate datetime 对象的创建日期。 
ftcatid smallint 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。  
schema_ver int 版本号,该版本号在每次表的架构更改时都增加。 
stats_schema_
ver int 保留。仅限内部使用。 
type char(2) 对象类型。可以是下列值之一: 
C = CHECK 约束 
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束 
FN = 标量函数
IF = 内嵌表函数
K = PRIMARY KEY 或 UNIQUE 约束 
L = 日志
P = 存储过程
R = 规则
RF = 复制筛选存储过程
S = 系统表 
TF = 表函数
TR = 触发器
U = 用户表
V = 视图
X = 扩展存储过程
---------------------------------------
临时表:
if object_id('tempdb.dbo.##MutidataNew') is not null
begin
    drop table ##MutidataNew
end
---------------------------------------
表:
if OBJECT_ID(N'Happen0',N'U') IS NOT NULL 
begin
    drop table Happen0 
end
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值