OBJECT_ID ( '[ database_name . [ schema_name ] . | schema_name . ] object_name' [ ,'object_type' ] )
当指定临时表名时,除非当前数据库为 tempdb,否则必须在该临时表名之前加上数据库名称。例如:SELECT OBJECT_ID('tempdb..#mytemptable')。
object_type 对象类型:
AF = 聚合函数 (CLR)
C = CHECK 约束
D = DEFAULT(约束或独立)
F = FOREIGN KEY 约束
PK = PRIMARY KEY 约束
P = SQL 存储过程
PC = 程序集 (CLR) 存储过程
FN = SQL 标量函数
FS = 程序集 (CLR) 标量函数
FT = 程序集 (CLR) 表值函数
R = 规则(旧式,独立)
RF = 复制筛选过程
SN = 同义词
SQ = 服务队列
TA = 程序集 (CLR) DML 触发器
TR = SQL DML 触发器
IF = SQL 内联表值函数
TF = SQL 表值函数
U = 表(用户定义类型)
UQ = UNIQUE 约束
V = 视图
X = 扩展存储过程
IT = 内部表
1、判断临时表是否存在
if object_id('tempdb..#q','U') is not null
drop table #q
go
2、判断表是否存在
if object_id('AdventureWorks.dbo.q','U') is not null
drop table dbo.q
go
IF EXISTS
(SELECT * FROM SYSOBJECTS WHERE ID = OBJECT_ID(N'T1') AND OBJECTPROPERTY(ID, N'ISUSERTABLE') = 1)
DROP TABLE dbo.T1;
3、判断存储过程是否存在
IF OBJECT_ID ( 'AdventureWorks.dbo.usp_GetErrorInfo', 'P' ) IS NOT NULL
DROP PROCEDURE dbo.usp_GetErrorInfo;
GO
|