名稱 | 地址 | 說明 |
---|---|---|
sysaltfiles | 主數據庫 | 保存數據庫的文件 |
syscharsets | 主數據庫 | 字符集與排序順序 |
sysconfigures | 主數據庫 | 配置選項 |
syscurconfigs | 主數據庫 | 當前配置選項 |
sysdatabases | 主數據庫 | 服務器中的數據庫 |
syslanguages | 主數據庫 | 語言 |
syslogins | 主數據庫 | 登陸帳號信息 |
sysoledbusers | 主數據庫 | 鏈接服務器登陸信息 |
sysPRocesses | 主數據庫 | 進程 |
sysremotelogins | 主數據庫 | 遠程登錄帳號 |
syscolumns | 每個數據庫 | 列 |
sysconstrains | 每個數據庫 | 限制 |
sysfilegroups | 每個數據庫 | 文件組 |
sysfiles | 每個數據庫 | 文件 |
sysforeignkeys | 每個數據庫 | 外部關鍵字 |
sysindexs | 每個數據庫 | 索引 |
sysmembers | 每個數據庫 | 角色成員 |
sysobjects | 每個數據庫 | 所有數據庫對象 |
syspermissions | 每個數據庫 | 權限 |
systypes | 每個數據庫 | 用戶定義數據類型 |
sysusers | 每個數據庫 | 用戶 |
在sqlserver中一般可通過查詢sys.objects系統表來得知結果,不過可以有更方便的方法 如下:
if object_id('tb_table') is not null print 'exist' else print'not exist'如上,可用object_id()來快速達到相同的目的,tb_table就是我將要創建的資源的名稱,所以要先判斷當前數據庫中不存在相同的資源 object_id()可接受兩個參數,第一個如上所示,代表資源的名稱,上面的就是表的名字,但往往我們要說明我們所要創建的是什么類型的資源, 這樣sql可以明確地在一種類型的資源中查找是否有重復的名字,如下:
if object_id('tb_table','u') is not null print 'exist' else print'not exist'第二個參數 “u” 就表示tb_table是用戶創建的表,即:USER_TABLE地首字母簡寫 查詢sys.objects中可得到各種資源的類型名稱(TYPE列),這里之舉幾個主要的例子
u ———– 用戶創建的表,區別于系統表(USER_TABLE) s ———– 系統表(SYSTEM_TABLE) v ———– 視圖(VIEW) p ———– 存儲過程(SQL_STORED_PROCEDURE)如果你要查詢的是所有數據庫(用戶/系統):
select * from master..sysdatabases如果你要查詢的是用戶數據庫,則使用:
select * from master..sysdatabases where dbid > 4如果你要查詢的是系統數據庫,只需要把where字句改為dbid < 4即可。
2.對應數據庫中sysobjects表(反應的是相應數據庫中所有的對象): 這個表的用處是最大的,因為它里面存放的有:表(系統/用戶)、存儲過程(系統/用戶)、視圖、主鍵、外鍵等。 這里就不一一說明了。 比如你sqlserver中有個數據庫名叫 test,如果要查詢該數據庫中的所有表對象:
select * from test..sysobjects where type = ’u’ or type = ’s’這里的type = ’u’是表示用戶表對象,type = ’s’是系統表對象,怎樣單獨查詢用戶表對象或者系統表對象就不用說了吧。 如果你要查詢的是存儲過程當然也分了系統和用戶了: 這個是查詢數據庫中所有存儲過程
select * from test..sysobjects where type = ’p’如果你要查詢的是用戶存儲過程則加上 and category <> 2 即可。 查詢系統存儲過程就不用說了吧(category = 2 誰不知道。。。) 查詢視圖與查詢存儲過程一樣,比如: 你查詢的是數據庫中所有視圖
select * from test..sysobjects where type = ’v’如果你要查詢的是用戶視圖則加上 and category <> 2 即可。 其他的就不說了,就把 它們的type給大家說下:
type = ’ pk’ 表示主鍵。type = ’ d’ 外鍵引用。type = ’uq’ 唯一索引。http://www.cnblogs.com/accumulater/p/6214029.html https://zhidao.baidu.com/question/415824360.html
新聞熱點
疑難解答