1. 程式人生 > >取數據庫信息

取數據庫信息

term 進程 pre tab rom Language session 用戶名 system

MYSQL中可以通過函數來取得數據庫的信息,包括當前數據庫名、版本、當前登錄用戶等信息:DATABASE()函數返回當前數據庫名;VERSION()函數以一個字符串形式返回MySQL 服務器的版本;USER()函數(這個函數還有SYSTEM_USER、SESSION_USER兩個別名)返回當前MySQL 用戶名。

MSSQLServer中也可以通過函數來取得數據庫的信息:APP_NAME()函數返回當前會話的應用程序名稱;CURRENT_USER函數(註意這個函數不能帶括號調用)返回當前登陸用戶名;HOST_NAME()函數返回工作站名。

不過,在MSSQLServer中如果要查詢當前數據庫名,則必須到系統表sysprocesses中查詢,SQL語句如下:


select dbname = case when dbid = 0 then null when dbid <> 0 then db_name(dbid) end

from master..sysprocesses where spid=@@SPID

系統表“master..sysprocesses”中存儲了當前數據庫系統中的進程信息,而“@@SPID”則表示當前進程號。

Oracle中使用USER函數用來取得當前登錄用戶名,註意使用這個函數的時候不能使用括號形式的空參數列表,也就是USER()這種使用方式是不對的。正確使用方式如下:


SELECT USER FROM DUAL

Oracle中使用USERENV()函數用來取得當前登錄用戶相關的環境信息,USERENV()函數有一個參數,參數的可選值如下:ISDBA、LANGUAGE、TERMINAL、SESSIONID、ENTRYID、LANG和INSTANCE。

DB2中可以通過CURRENT_USER來取得當前登陸用戶名,而CURRENT_SERVER用來取得當前服務名,比如:


SELECT CURRENT_USER,CURRENT_SERVER FROM sysibm.sysdummy1

DB2中取得當前數據庫的版本的SQL語句如下:


SELECT * FROM sysibm.sysversions

取數據庫信息