程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 淺談SQL Server數據庫中系統表的作用

淺談SQL Server數據庫中系統表的作用

編輯:關於SqlServer

(一)系統表:存儲SQL所有的系統信息。存儲有關數據庫服務中的元數據所謂元數據即(比如數據服務器有哪些用戶數據庫、數據庫服務器有哪些登陸賬號,數據庫中都有哪些表,每個表都有哪些字段 每個數據庫有哪些存儲過程、視圖等等的數據),系統表一般sys開頭。

(二)了解數據庫中系統表,可以編寫sql語句或編程的時候用到。以下場景使用到了系統表

1、在創建數據庫的時候選判斷數據庫是否存在;創建數據庫中對象(表、視圖、存儲過程、索引等)是否存在,存在返回,不存在則執行創建語句。

2、批量刪除數據庫中對象,比如一次性刪除某個具體數據庫中的所有用戶創建的表、視圖、索引等對象,可以查詢系統表中對象然後使用sql語句控制刪除。

(三)重要的幾個系統表

Sysxlogins:存在與Master數據庫中,(所有數據庫中用戶和角色),記錄著所有能登陸到Sql server 的帳號。因為系統表是不允許人工刪除的,如想刪除則執行sp_configure’allow update’,1

不會立即生效,要重啟服務或reconfigure with override

sysdatabases:記錄著當前系統所有的數據庫。只有Master數據中有此系統表。

Systypes(每個數據庫都有):存放系統中默認的用戶類型和用戶自定義的用戶類型。

Sysusers:記錄每個數據庫中的用戶和角色。

Sysobjects:在數據庫內創建的每個對象(約束、默認、日志、規則、存儲過程)在表中占一行。

(四)知道了數據庫中系統表,可以在寫sql語句或在開發過程中通過sql語句完成以下任務

1、查詢數據庫中都有哪些數據庫

select * from dbo.sysdatabases

2、查詢用戶創建的數據庫中有哪些用戶創建的表

select * from Sysobjects  where xtype='U'

3、查詢用戶創建的數據庫中有哪些用戶創建的存儲過程

select * from Sysobjects  where xtype='P'

4、批量生成刪除數據庫中所有用戶表的sql語句

select 'drop table '+ name  from Sysobjects where xtype='U'

綜合以上所述,掌握數據庫中系統表,對於我們sql編程具有很大幫助

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved