判斷表(暫存資料表),預存程序是否存在,判斷預存程序
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 endselect * from #tempa