程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 數據庫常用系統表、屬性、存儲過程、函數概述

數據庫常用系統表、屬性、存儲過程、函數概述

編輯:關於SqlServer
 

系統表、屬性


系統表的作用:用戶自定義的表對自己填充的數據進行操作。而對sql server來說,用戶自定義的表就相當於為系統表填充的數據,故用系統表來操作用戶數據庫,
數據表,存儲過程等數據。 系統表操作用戶自定義表,用戶自定義表操作外來的數據。

1,sysobjects表:萬物皆對象,這是一個系統對象表。表,存儲過程,觸發器都是對象,都存在此表內。此表用crdate 等保存 對象的創建日期。
查找用戶表: select * from sysobjects where xtype = ‘U’ AND status >0
因dtproperties雖是系統表,但類型為’U', 但status為負數,故得到純淨的用戶表時要將其除去。dtproperties這個表裡保存的是關系圖
查存儲過程: select * from sysobjects where xtype = ‘P’
注:Type是在SQL SERVER 6.0就有的,xType在SQL SERVER 7.0才出現,Type的保留只是為了向後兼容。

相關函數:object_id(‘mytable’),查出對象名在sysobjects表中的id值
object_id ( object_id ), 據id查出對象名

2,sys.servers 查看所有本地服務器及鏈接服務器 select * from master..sysservers 該表只存儲在 master 數據庫中。

3,sys.databases 查詢非sa創建的所有數據庫 select * from master..sysdatabases 該表只存儲在 master 數據庫中。

4, sys.columns 獲取表或視圖的所有字段,存儲過程或函數的所有參數 select name from syscolumns where id=object_id(‘表名’)

5,sys.indexes 數據庫中的每個索引。

6, sys.logins 每個登錄帳戶在表中占一行。

7, sys.processes 數據庫進程信息 ,只存儲在 master 數據庫中。
查看用戶進程信息 select spid,uid,syslogins.name,login_time,net_address from sysprocesses,syslogins where sys.processes.sid=syslogins.sid

8,sysdepends 查看與某一個表相關的視圖、存儲過程、函數 select * from sysdepends where depid=object_id(‘表名’)

9,sysmessages SQL SERVER返回的內部錯誤都有在這裡,可自行修改,當錯誤發生時顯示自己指示的信息。

10,sysfiles 保存當前數據庫所在文件大小,路徑等信息。

11,INFORMATION_SCHEMA 當前數據庫的每個 CHECK 約束在該視圖中占一行。該信息架構視圖返回當前用戶對其擁有權限的對象的有關信息。
查詢某個表的哪些字段不允許為空
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where IS_NULLABLE=’NO’ and TABLE_NAME=’bdorder’

 

 

系統存儲過程


1,查看數據庫的版本
select @@version
2,查看數據庫所在機器操作系統參數
exec master..xp_msver
查看數據庫啟動的參數
sp_configure
查看數據庫啟動時間
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看所有數據庫名稱及大小
sp_helpdb
查看所有數據庫用戶登錄信息
sp_helplogins
3,.查看某數據庫下某個數據對象的大小
sp_spaceused @objname

4,查看數據庫裡所有的存儲過程和函數
use @database_name
sp_stored_procedures

sp_help 查看表結構, 存儲過程實參

5,查看存儲過程和函數的源代碼
sp_helptext ‘@procedure_name’

6,查看數據庫裡用戶和進程的信息
sp_who
查看SQL Server數據庫裡的活動用戶和進程的信息
sp_who ‘active’
看進程正在執行的SQL語句:
dbcc inputbuffer (51) 51為進程號

7,查看SQL Server數據庫裡的鎖的情況
sp_lock
進程號1–50是SQL Server系統內部用的,進程號大於50的才是用戶的連接進程。spid是進程編號,dbid是數據庫編號,objid是數據對象編號

 


系統函數

 

1,@@SERVERNAME 返回運行 Microsoft® SQL Server™ 的本地服務器名稱。

2,@@SERVICENAME 返回 Microsoft® SQL Server™ 正在其下運行的注冊表鍵名,SQL Server 作為名為 MSSQLServer 的服務在 Microsoft Windows NT® 上運行

3,
HOST_ID() –主機編號
HOST_NAME()–主機名
DB_ID(‘master’) –數據庫編號
DB_NAME(1) –數據庫名稱
OBJECT_ID(‘sysobjects’) –數據庫對象編號
File_ID(‘master’) –返回該邏輯文件名的編號
File_NAME(1) –返回該文件編號的邏輯文件名
FILEGROUP_ID(‘primary’) –返回文件組編號
FILEGROUP_NAME(1) –返回文件組名稱

4, COL_NAME(OBJECT_ID(‘sysobjects’),1) –表中列的名稱,每個表中列是從…n順序編號
INDEX_COL(‘sysobjects’,1,1) –返回sysobjects中第一個索引第一個鍵的名稱
APP_NAME() –返回當前使用的工具名稱,如:SQL 查詢分析器
@@SPID –返回當前連接在SQL SERVER中的編號
@@PROCID –在SP中使用,查看自己的ID
Suser_Sid() –返回登錄的SID,可傳參,默認返回當前值
Suser_Sname() –返回登錄的名稱,可傳參,默認返回當前值
System_User –等價於不帶參數的SUER_SNAME()
User_Id() –返回數據庫用戶ID,可傳參,默認返回當前值
User_Name() –返回數據庫用戶名,可傳參,默認返回當前值
User –等價於不帶參數的USER_NAME()
Current_User –等價於不帶參數的USER_NAME()
Session_User –等價於不帶參數的USER_NAME()

5,
獲取長度
DATALENGTH(‘s我s’) –返回表達式占用的字節數
COL_LENGTH(‘sysobjects’,'name’) –返回列的定義長度(byte)
日期時間轉換為字符串

6,
日期時間轉換為字符串
convert(varchar(20),getdate(),120)

7,@@IDENTITY 始終返回當前會話最後的標識值

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