SQL Server判斷物件是否存在

2022-03-22 08:26:01 字數 4848 閱讀 5022

1 判斷資料庫是否存在

if

exists (select

*from sys.databases where name =

』資料庫名』)

drop

database

[資料庫名]if

exists (select

*from sys.databases where name =

』資料庫名』)

drop

database

[資料庫名

]

2 判斷表是否存在

if

exists (select

*from sysobjects where id =

object_id(n』[

表名]』) and

objectproperty(id, n』isusertable』) =

1)

drop

table[表名

]ifexists (select

*from sysobjects where id =

object_id(n』[

表名]』) and

objectproperty(id, n』isusertable』) =1)

drop

table[表名

]

3 判斷儲存過程是否存在

if

exists (select

*from sysobjects where id =

object_id(n』[

儲存過程名

]』) and

objectproperty(id, n』isprocedure』) =

1)

drop

procedure

[儲存過程名]if

exists (select

*from sysobjects where id =

object_id(n』[

儲存過程名

]』) and

objectproperty(id, n』isprocedure』) =1)

drop

procedure

[儲存過程名

]

4 判斷臨時表是否存在

if

object_id(』tempdb..#臨時表名』) is

notnull

drop

table #臨時表名 if

object_id(』tempdb..#臨時表名』) is

notnull

drop

table #臨時表名

5 判斷檢視是否存在

--

sql server 2000

ifexists (select

*from sysviews where

object_id

= 』[

dbo].[

檢視名]

』 --

sql server 2005

ifexists (select

*from sys.views where

object_id

= 』[

dbo].[

檢視名]』 --

sql server 2000

ifexists (select

*from sysviews where

object_id

= 』[

dbo].[

檢視名]』--

sql server 2005

ifexists (select

*from sys.views where

object_id

= 』[

dbo].[

檢視名]』

6 判斷函式是否存在

--

判斷要建立的函式名是否存在

ifexists (select

*from dbo.sysobjects where id =

object_id(n』[

dbo].[

函式名]』) and xtype in (n』fn』, n』if

』, n』tf』))

drop

function

[dbo

].[函式名]--

判斷要建立的函式名是否存在

ifexists (select

*from dbo.sysobjects where id =

object_id(n』[

dbo].[

函式名]』) and xtype in (n』fn』, n』if

』, n』tf』))

drop

function

[dbo

].[函式名

]

7 獲取使用者建立的物件資訊 

select

[name

],[id

],crdate from sysobjects where xtype=

』u』

/*xtype 的表示引數型別,通常包括如下這些

c = check 約束

d = 預設值或 default 約束

f = foreign key 約束

l = 日誌

fn = 標量函式

if = 內嵌表函式

p = 儲存過程

pk = primary key 約束(型別是 k)

rf = 複製篩選儲存過程

s = 系統表

tf = 表函式

tr = 觸發器

u = 使用者表

uq = unique 約束(型別是 k)

v = 檢視

x = 擴充套件儲存過程

*/select

[name

],[id

],crdate from sysobjects where xtype=

』u』/*

xtype 的表示引數型別,通常包括如下這些

c = check 約束

d = 預設值或 default 約束

f = foreign key 約束

l = 日誌

fn = 標量函式

if = 內嵌表函式

p = 儲存過程

pk = primary key 約束(型別是 k)

rf = 複製篩選儲存過程

s = 系統表

tf = 表函式

tr = 觸發器

u = 使用者表

uq = unique 約束(型別是 k)

v = 檢視

x = 擴充套件儲存過程

*/

8 判斷列是否存在

if

exists(select

*from syscolumns where id=

object_id(』表名』) and name=

』列名』)

alter

table 表名 drop

column 列名 if

exists(select

*from syscolumns where id=

object_id(』表名』) and name=

』列名』)

alter

table 表名 drop

column 列名

9 判斷列是否自增列

if

columnproperty(object_id(』table』),』col』,』isidentity』)=

1print

』自增列』

else

print

』不是自增列』

select

*from sys.columns where

object_id

=object_id

(』表名』)

and is_identity=1if

columnproperty(object_id(』table』),』col』,』isidentity』)=

1print

』自增列』

else

print

』不是自增列』

select

*from sys.columns where

object_id

=object_id

(』表名』)

and is_identity=

1

10 判斷表中是否存在索引

if

exists(select

*from sysindexes where id=

object_id(』表名』) and name=

』索引名』)

print

』存在』

else

print 』不存在 if

exists(select

*from sysindexes where id=

object_id(』表名』) and name=

』索引名』)

print

』存在』

else

print 』不存在

11 檢視資料庫中物件

select

*from sys.sysobjects where name=』物件名』 select

*from sys.sysobjects where name=』物件名』

判斷物件是否是空物件

object.keys 方法會返回乙個由乙個給定物件的自身可列舉屬性組成的陣列。通過陣列中屬性的個數判斷是否為空物件。const empty object.keys empty length 0 empty.constructor object 而且需要判斷物件的constructor屬性是否等於o...

js判斷物件是否存在

例項如下 if typeof obj undefined 如果typeof obj undefined 為true則該物件不存在,當前指令碼還沒有定義該物件 其他的寫法要注意 這種方法不起作用 if x undefined 操作語句 這個方法同樣不起作用 必須檢查 字串 undefined if t...

如何判斷物件是否死亡

主要的方法分為兩種 引用計數演算法和可達性分析演算法,目前常用的就是可達性分析演算法 對乙個物件新增乙個引用的計數器,當該物件被引用依次那麼計數器 1,如果引用被釋放,那麼計數器 1,這樣根據物件最終引用次數為0時,將該物件 缺點 當兩個物件互相的引用,引用計數器就無法得到為0,那麼也就無將物件就行...