1.判断正式表或者存储过程是否存在
select * from dbo.sysobjects where id=OBJECT_ID(N‘dbo.Users‘) and type=‘U‘
--U表示表
select * from dbo.sysobjects where id= object_id(N‘usp_InsertAliPayFeedback‘) and type=‘P‘
--P表示存储过程
2.判断临时表类型
select * from tempdb.dbo.sysobjects where id= OBJECT_ID(N‘tempdb.dbo.#tempa‘) and type=‘U‘
--U表示表
select * from tempdb.dbo.sysobjects where id= OBJECT_ID(N‘usp_InsertAliPayFeedback‘)
and type=‘P‘ --P表示存储过程
对象类型。可以是下列值之一:
C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束
FN = 标量函数 IF = 内嵌表函数 K = PRIMARY KEY 或 UNIQUE 约束
L = 日志 P
= 存储过程 R = 规则 RF = 复制筛选存储过程
S = 系统表 TF = 表函数 TR = 触发器 U
= 用户表 V = 视图 X = 扩展存储过程
举个小例子:
if exists(select * from tempdb.dbo.sysobjects where id= OBJECT_ID(N‘tempdb.dbo.#tempa‘)) --是否存在该临时表
drop table #tempa --存在则删除
create table #tempa
(
Num int,
Name varchar(20) default ‘名字‘ --列的默认值设置
)
declare @a int
set @a = 1
while @a<30
begin
insert into #tempa (Num) values (@a)
set @a = @a+1
end
select * from #tempa