sql server如何判斷資料庫是否存在

2021-09-02 02:58:23 字數 4542 閱讀 9172

如何判斷資料庫是否存在 執行下列的sql,獲得一張表,根據表的行數來判斷。

select * from master..sysdatabases where name=n'所查詢的資料庫名'

if exists(select * from master.dbo.sysdatabases where name = 'yexinwinners')

begin

drop database yexinwinners

print 'yexinwinners己存在,己被刪除'

endelse

begin

create database yexinwinners

on primary

(name = yexinwinners_mdf,

filename = 'c:\yexinwinners.mdf',

size = 10mb,

maxsize = 50mb,

filegrowth = 25%

)log on

(name = yexinwinners_ldf,

filename = 'c:\yexinwinners.ldf',

size = 10mb,

maxsize = 50mb,

filegrowth = 25%

)print 'yexinwinners 資料庫建立成功'

end--建聚集索引

create clustered index index_yexinwinners

on tablename(column_name)

with fillfactor = 10

--建非聚集索引

create nonclustered index index_yexinwinners

on tablename(column_name)

with fillfactor = 10

--建檢視

create view view_name

asselect * from pubs.titles(sql語句,任意)

--建檢查檢視

create view view_name

asselect * from pubs.titles(sql語句,任意)

with check option

--建加密檢視

create view view_name

with encryption

asselect * from pubs.titles(sql語句,任意)

--建表

create table tablename

( ---(欄位名,字段型別 自己任意)

stuid int not null identity(1,1) primary key,

stuname varchar(30) not null,

stuage char(3) not null

)--新增check約束

alter table tablename

add check(stuage >0 and stuage <100)

--新增外來鍵

alter table tablename

add foreign key (stuname)

references xtablename(stuname)

--新增唯一約束

alter table tablename

add unique(stuid) ---建事務

begin tranaction

update xtable set money = money + 10000 where id = 1

update xtable set money = money - 10000 where id = 3

if(@@error <> 0)

begin

print '轉帳失敗'

rollback transaction

endelse

begin

print '轉帳成功'

commit transaction

end--建游標

declare cursor_name cursor

for select * from northwind.product

--建更新游標

declare cursor_name cursor

for select * from northwind.product

for update

--建隨意移動游標

declare cursor_name cursor scroll

for select * from northwind.product

--使用游標

open cursor_name

--關閉游標

close cursor_name

--刪除游標

deallocate cursor_name

--移動游標

fetch next -- 下一條記錄

fetch last --最後一條記錄

fetch first --第一條記錄

fetch prior --上一條記錄

fetch absolute n -- 絕對位置 name = yexinwinners

email = [email protected]

blog = blog.sina.com.cn/yexins

qq = 306677309

sqlserver中判斷資料庫是否存在:

select*frommaster.dbo.sysdatabaseswherename='pubs'

最初安裝sqlserver時,sysdatabases包含master、model、msdb、mssqlweb和tempdb資料庫的項。該錶只儲存在master資料庫中。

但在實際使用中,需判斷status狀態位:

其中某些狀態位可由使用者使用sp_dboption(readonly、dbouseonly、singleuser等)進行設定:

1=autoclose;使用sp_dboption設定。資料庫完全關閉,其資源在最後乙個使用者登出後釋放。

4=selectinto/bulkcopy;使用sp_dboption設定。允許使用selectinto語句和快速大容量複製。

8=trunc.logonchkpt;使用sp_dboption設定。如果資料庫處於日誌截斷模式,則檢查點將截斷日誌中非活動的部分。只能為master資料庫設定此選項。16=tornpagedetection,使用sp_dboption設定。可以檢測殘缺頁。

32=loading。

64=prerecovery。

128=recovering。

256=notrecovered。

512=offline;使用sp_dboption設定。資料庫將處於離線狀態。

1024=readonly;使用sp_dboption設定。使用者僅能讀取資料庫中的資料而無法對其進行修改。

2048=dbouseonly;使用sp_dboption設定。只有資料庫所有者可以使用資料庫。

4096=singleuser;使用sp_dboption設定。每次只能有乙個使用者訪問資料庫。

32768=emergencymode。

4194304=autoshrink。

1073741824=cleanlyshutdown。

可以同時開啟多個位。

譬如:判斷乙個資料庫是否offline

select*frommaster.dbo.sysdatabaseswherename='pubs'andstatus<>512

sqlserver中判斷表物件是否存在:

selectcount(*)fromsysobjectswhereid=object_id('資料庫名.owner.表名')

ifexists

(selectcount(*)fromsysobjectswhereid=object_id('資料庫名.owner.表名'))

print'存在'

else

print'不存在'

sqlserver中判斷表中字段是否存在:

ifexists(select*fromsyscolumnswherename='colname1'andid=object_id('資料庫名.owner.表名'))

print'存在'

else

print'不存在'

代表表tablename1中存在colname1欄位

例:select*fromsyscolumnswherename='test'andid=object_id('dbo.test')

access中判斷表物件是否存在:

其實,access資料庫也有系統表,存放有物件名

selectcount(*)asqtyfrommsysobjectswhere((msysobjects.name)like'表名');

判斷資料庫和表是否存在

if not exists(select 1 from master.dbo.sysdatabases where name=n'jzkstarcfg')

SQL Server 中如何判斷表是否存在

sql server資料庫中表等物件都儲存在sysobjects資料表中,臨時表被儲存於tempdb資料庫中 1.判斷普通表是否存在,可以使用object id函式,它可以根據物件名稱返回物件的id if select object id tablename is notnull select tr...

如何判斷資料型別?

1 typeof 2 instanceof 3 constructor 4 object.prototype.tostring.call 5 jquery.type 1 typeof 使用typeof可以判斷基本資料型別,在使用typeof判斷引用資料型別時除了判斷function時返回functi...

sql server判斷表存在

在建立表 更改表結構 刪除表或對錶進行什麼操作之前,乙個比較嚴謹的做法是先判斷該錶是否已經存在。在sql server中判斷乙個表是否存在,有兩個方法,下面以diso表為例。方法1 if exists select top1 1from sysobjects where id object id n...