標籤:get print users 是什麼 not dbf https 類型 type
1、查看錶和視圖
SELECT * FROM sys.objects WHERE object_id = object_id(‘表名或視圖名‘)
在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)
2、查看錶的列名
select * from syscolumns where id=object_id(‘表名‘) and name=‘列名‘
3、查看資料庫
select * from sys.databases where name = ‘student‘
4、查看備份裝置
"select * from sys.backup_devices where name =‘backupdb‘
(添加備份裝置:exec sp_addumpdevice ‘disk‘,‘backupdb‘,‘d:\\backup\\backupdb.bak‘)
5、查看資料檔案
select name, physical_name dbfile from sys.master_files where database_id=db_id(‘student‘)
master資料庫中sysdatabases表(是sqlserver中所有的資料庫的庫名) :
如果你要查詢的是所有資料庫(使用者/系統):
select * from master..sysdatabases
如果你要查詢的是使用者資料庫,則使用:
select * from master..sysdatabases where dbid > 4
如果你要查詢的是系統資料庫,只需要把where字句改為dbid < 4即可。
6、查看執行的sql語句
SELECT cacheobjtype,objtype,usecounts,sql
from sys.syscacheobjects where sql not like‘%cach%‘ and sql not like ‘%sys.%‘
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’ 唯一索引。
下面附錄一些常用系統資料表
名稱 地址 說明
sysaltfiles 主要資料庫 儲存資料庫的檔案
syscharsets 主要資料庫 字元集與排序次序
sysconfigures 主要資料庫 配置選項
syscurconfigs 主要資料庫 當前配置選項
sysdatabases 主要資料庫 伺服器中的資料庫
syslanguages 主要資料庫 語言
syslogins 主要資料庫 登陸帳號資訊
sysoledbusers 主要資料庫 連結的伺服器登陸資訊
sysprocesses 主要資料庫 進程
sysremotelogins主要資料庫 遠程登入帳號
syscolumns 每個資料庫 列
sysconstrains 每個資料庫 限制
sysfilegroups 每個資料庫 檔案組
sysfiles 每個資料庫 檔案
sysforeignkeys 每個資料庫 外部關鍵字
sysindexs 每個資料庫 索引
sysmenbers 每個資料庫 角色成員
sysobjects 每個資料庫 所有資料庫物件
syspermissions 每個資料庫 許可權
systypes 每個資料庫 使用者定義資料類型
sysusers 每個資料庫 使用者
SQLSERVER常用系統資料表