SQL 中 判断 表 或 临时表 是否 存在
1、判断数据表是否存在
方法一:
use yourdb;go
if object_id(N'tablename',N'U') is not nullprint '存在'
else
print '不存在'
例如:use fireweb;go
if object_id(N'TEMP_TBL',N'U') is not nullprint '存在'
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