--数据库是否存在
if EXISTS(select * from master..sysdatabases where [NAME] = N'数据库名') PRINT '存在'ELSE PRINT '不存在'--表是否存在if EXISTS(select * from dbo.sysobjects where id = OBJECT_ID(N'表名') and OBJECTPROPERTY(id, N'IsUserTable') = 1) PRINT '存在'ELSE PRINT '不存在'--临时表是否存在IF (OBJECT_ID('Tempdb.dbo.#Test') IS NOT NULL) PRINT '存在'ELSE PRINT '不存在' --视图是否存在if EXISTS(select * from dbo.sysobjects where id = OBJECT_ID(N'视图名') and OBJECTPROPERTY(id, N'IsView') = 1) PRINT '存在'ELSE PRINT '不存在'--存储过程是否存在IF EXISTS(select * from sysobjects where id = OBJECT_ID(N'存储过程名') and OBJECTPROPERTY(id, N'IsProcedure') = 1) PRINT '存在'ELSE PRINT '不存在'--函数是否存在IF EXISTS(select * from dbo.sysobjects where id = OBJECT_ID(N'函数名') and xtype in (N'FN', N'IF', N'TF')) PRINT '存在'ELSE PRINT '不存在'/*以下资料来自网络sysObjects ( Name sysname, --object 名称 id int, --object id xtype char(2), -- object 类型 type char(2), -- Object 类型(与xtype 似乎一模一样? 有点郁闷…) uid smallint, -- object 所有者的ID ... --其他的字段不常用到。 )sysobjects的xtype代表的对象类型。可以是下列对象类型中的一种: 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 = 扩展存储过程 */