(一)系統(tǒng)表:存儲SQL所有的系統(tǒng)信息。存儲有關(guān)數(shù)據(jù)庫服務(wù)中的元數(shù)據(jù)所謂元數(shù)據(jù)即(比如數(shù)據(jù)服務(wù)器有哪些用戶數(shù)據(jù)庫、數(shù)據(jù)庫服務(wù)器有哪些登陸賬號,數(shù)據(jù)庫中都
(一)系統(tǒng)表:存儲SQL所有的系統(tǒng)信息。存儲有關(guān)數(shù)據(jù)庫服務(wù)中的元數(shù)據(jù)所謂元數(shù)據(jù)即(比如數(shù)據(jù)服務(wù)器有哪些用戶數(shù)據(jù)庫、數(shù)據(jù)庫服務(wù)器有哪些登陸賬號,數(shù)據(jù)庫中都有哪些表,每個表都有哪些字段 每個數(shù)據(jù)庫有哪些存儲過程、視圖等等的數(shù)據(jù)),系統(tǒng)表一般sys開頭。
(二)了解數(shù)據(jù)庫中系統(tǒng)表,可以編寫sql語句或編程的時候用到。以下場景使用到了系統(tǒng)表
1、在創(chuàng)建數(shù)據(jù)庫的時候選判斷數(shù)據(jù)庫是否存在;創(chuàng)建數(shù)據(jù)庫中對象(表、視圖、存儲過程、索引等)是否存在,網(wǎng)站空間,存在返回,不存在則執(zhí)行創(chuàng)建語句。
2、批量刪除數(shù)據(jù)庫中對象,比如一次性刪除某個具體數(shù)據(jù)庫中的所有用戶創(chuàng)建的表、視圖、索引等對象,可以查詢系統(tǒng)表中對象然后使用sql語句控制刪除。
(三)重要的幾個系統(tǒng)表
Sysxlogins:存在與Master數(shù)據(jù)庫中,免備案空間,(所有數(shù)據(jù)庫中用戶和角色),記錄著所有能登陸到Sql server 的帳號。因為系統(tǒng)表是不允許人工刪除的,如想刪除則執(zhí)行sp_configure’allow update’,1
不會立即生效,要重啟服務(wù)或reconfigure with override
sysdatabases:記錄著當(dāng)前系統(tǒng)所有的數(shù)據(jù)庫。只有Master數(shù)據(jù)中有此系統(tǒng)表。
Systypes(每個數(shù)據(jù)庫都有):存放系統(tǒng)中默認(rèn)的用戶類型和用戶自定義的用戶類型。
Sysusers:記錄每個數(shù)據(jù)庫中的用戶和角色。
Sysobjects:在數(shù)據(jù)庫內(nèi)創(chuàng)建的每個對象(約束、默認(rèn)、日志、規(guī)則、存儲過程)在表中占一行。
(四)知道了數(shù)據(jù)庫中系統(tǒng)表,可以在寫sql語句或在開發(fā)過程中通過sql語句完成以下任務(wù)
1、查詢數(shù)據(jù)庫中都有哪些數(shù)據(jù)庫
select * from dbo.sysdatabases
2、查詢用戶創(chuàng)建的數(shù)據(jù)庫中有哪些用戶創(chuàng)建的表
select * from Sysobjects where xtype='U'
3、查詢用戶創(chuàng)建的數(shù)據(jù)庫中有哪些用戶創(chuàng)建的存儲過程
select * from Sysobjects where xtype='P'
4、批量生成刪除數(shù)據(jù)庫中所有用戶表的sql語句
select 'drop table '+ name from Sysobjects where xtype='U'
綜合以上所述,掌握數(shù)據(jù)庫中系統(tǒng)表,虛擬主機(jī),對于我們sql編程具有很大幫助
廣告
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com