SQLServer資源是否存在彙總

2021-06-21 12:10:52 字數 2496 閱讀 3820

1、判斷資料庫是否存在

使用資源:「master..sysdatabases」存放著所有資料庫的資訊

判斷案例:

if exists(select * from master..sysdatabases where name=n'庫名')

print 'exists'

else

print 'not exists'

2、判斷資料表是否存在

使用資源:「dbo.sysobjects 」存放著所有資料表的資訊

判斷案例:

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[表名]') and objectproperty(id, n'isusertable') = 1)

drop table [dbo].[表名]  -- 刪除表

3、判斷臨時表是否存在

使用資源:「tempdb..sysobjects」/"tempdb.dbo.sysobjects"存放著所有臨時表的資訊

判斷案例:

if exists (select * from tempdb..sysobjects where id = object_id(n'tempdb..#臨時表名') )

drop table #臨時表名 -- 刪除臨時表

4、object_id()方法實現方便快速地判斷

判斷案例:

--if   object_id('tb_table') is not null  --臨時表判斷

if   object_id('tb_table') is not null  --正式表判斷

print 'exist'

else

print'not exist'

擴充套件知識:

object_id()可接受兩個引數,第乙個如上所示,代表資源的名稱,上面的就是表的名字,但往往我們要說明我們所要建立的是什麼型別的資源, 

這樣sql可以明確地在一種型別的資源中查詢是否有重複的名字,如下: 

if  

object_id('tb_table','u') is not null  

print 'exist' 

else 

print'not exist' 

第二個引數 "u" 就表示tb_table是使用者建立的表,即:user_table地首字母簡寫 

查詢sys.objects中可得到各種資源的型別名稱(type列),這裡之舉幾個主要的例子 

u  -----------  使用者建立的表,區別於系統表(user_table) 

s  -----------  系統表(system_table) 

v  -----------  檢視(view) 

p  -----------  儲存過程(sql_stored_procedure) 

可使用select distinct type ,type_desc from sys.objects 獲得全部資訊

5、判斷表中列是否存在

判斷案例:

if col_length( '表名','列名') is null

print 'not exists'

else

print 'exists'

6、判斷檢視是否存在

判斷案例:

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[檢視名]') and objectproperty(id, n'isview') = 1)

drop view [dbo].[檢視名] -- 刪除檢視

7、判斷儲存過程是否存在

判斷案例:

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[儲存過程名]') and objectproperty(id, n'isprocedure') = 1)

drop procedure [dbo].[儲存過程名] -- 刪除儲存過程

5、判斷方法是否存在

判斷案例:

--if exists (select * from sysobjects where xtype='fn' and name='函式名')

if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[函式名]') and xtype in (n'fn', n'if', n'tf'))

drop function [dbo].[函式名] -- 刪除函式 

sqlserver判斷表是否存在

1 判斷資料表是否存在 方法一 use yourdb goif object id n tablename n u is not null print 存在 else print 不存在 例如 use fireweb goif object id n temp tbl n u is not null...

SQL Server 判斷表是否存在

1 判斷資料表是否存在 方法一 use yourdb goif object id n tablename n u is not null print 存在 else print 不存在 例如 use fireweb goif object id n temp tbl n u is not null...

Sqlserver中判斷表是否存在

在sqlserver 應該說在目前所有資料庫產品 中建立乙個資源如表,檢視,儲存過程中都要判斷與建立的資源是否已經存在 在sqlserver中一般可通過查詢sys.objects系統表來得知結果,不過可以有更方便的方法 如下 if object id tb table is not null pri...