SQL 2005資料庫中各種物件的判斷

2021-06-17 19:15:32 字數 3962 閱讀 8585

1 判斷資料庫是否存在

sql**

if exists (select * from sys.databases where name = 』資料庫名』)

drop database [資料庫名] if exists (select * from sys.databases where name = 』資料庫名』)

drop database [資料庫名]

2 判斷表是否存在

sql**

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

drop table [表名] if exists (select * from sysobjects where id = object_id(n』[表名]』) and objectproperty(id, n』isusertable』) = 1)

drop table [表名]

3 判斷儲存過程是否存在

sql**

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 判斷臨時表是否存在

sql**

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

drop table #臨時表名 if object_id(』tempdb..#臨時表名』) is not null

drop table #臨時表名

5 判斷檢視是否存在

sql**

--sql server 2000

if exists (select * from sysviews where object_id = 』[dbo].[檢視名]』

--sql server 2005

if exists (select * from sys.views where object_id = 』[dbo].[檢視名]』 --sql server 2000

if exists (select * from sysviews where object_id = 』[dbo].[檢視名]』

--sql server 2005

if exists (select * from sys.views where object_id = 』[dbo].[檢視名]』

6 判斷函式是否存在

sql**

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

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

drop function [dbo].[函式名] -- 判斷要建立的函式名是否存在

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

drop function [dbo].[函式名]

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

sql**

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 判斷列是否存在

sql**

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 判斷列是否自增列

sql**

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

print 』自增列』

else

print 』不是自增列』

select * from sys.columns where object_id=object_id(』表名』)

and is_identity=1 if columnproperty(object_id(』table』),』col』,』isidentity』)=1

print 』自增列』

else

print 』不是自增列』

select * from sys.columns where object_id=object_id(』表名』)

and is_identity=1

10 判斷表中是否存在索引

sql**

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 檢視資料庫中物件

sql**

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

sql2005中資料庫角色

使用sql語句建立資料庫登入使用者 1.使用sa管理員用create login命令建立sql登陸使用者 語法create login 使用者名稱 with password 密碼,default database 預設資料庫名 create login teacher with password ...

sql2005中資料庫角色

使用sql語句建立資料庫登入使用者 1.使用sa管理員用create login命令建立sql登陸使用者 語法create login 使用者名稱 with password 密碼,default database 預設資料庫名 create login teacher with password ...

sql2005中資料庫角色

使用sql語句建立資料庫登入使用者 1.使用sa管理員用create login命令建立sql登陸使用者 語法create login 使用者名稱 with password 密碼,default database 預設資料庫名 create login teacher with password ...