[转] 判断表(临时表),存储过程是否存在

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
————————————————
版权声明:本文为CSDN博主「Richard_dzh」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Richard_dzh/article/details/45094951

 

 

 

posted @ 2023-02-02 09:42  AaronLi  阅读(199)  评论(0编辑  收藏  举报