在創建表之前,通常需要先判斷該表是否已經存在,如果存在則不需要創建;有時候刪除表之前也需要先行判斷是否存在,否則會報錯。
判斷方法大致有以下兩種:
方法一:
if Exists(select top 1 1 from sysObjects where Id=OBJECT_ID(N'LE_User') and xtype='U') print '存在' else print '不存在'
方法二:
if OBJECT_ID(N'LE_User',N'U') is not null print '存在' else print '不存在'
其中兩種方法都使用到了sysObjects這張系統表,該表保存了所有對象信息,既然是所有對象,自然包括表的信息,其中xtype為U表示為用戶表。
判斷臨時表是否存在方法如下:
if OBJECT_ID(N'tempdb..#TempTable',N'U') is not null print '存在' else print '不存在' if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'tempdb..#TempTable') and type='U') print '存在' else print '不存在'
臨時表本身也是一張表,所以判斷存在的方法和普通表相同,只不過需要增加tempdb..指明為臨時表。
