SQL Server系統(tǒng)表sysobjects介紹與使用

轉(zhuǎn)載
 
關(guān)于SQL Server數(shù)據(jù)庫(kù)的一切信息都保存在它的系統(tǒng)表格里。我懷疑你是否花過(guò)比較多的時(shí)間來(lái)檢查系統(tǒng)表格,因?yàn)槟憧偸敲τ谟脩舯砀?。但是,你可能需要偶爾做一點(diǎn)不同尋常的事,例如數(shù)據(jù)庫(kù)所有的觸發(fā)器。你可以一個(gè)一個(gè)地檢查表格,但是如果你有500個(gè)表格的話,這可能會(huì)消耗相當(dāng)大的人工。

這就讓sysobjects表格有了用武之地。雖然我不建議你更新這個(gè)表格,但是你當(dāng)然有權(quán)對(duì)其進(jìn)行審查。

sysobjects 表

在數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建的每個(gè)對(duì)象(約束、默認(rèn)值、日志、規(guī)則、存儲(chǔ)過(guò)程等)在表中占一行。只有在 tempdb 內(nèi),每個(gè)臨時(shí)對(duì)象才在該表中占一行。

sysobjects 表結(jié)構(gòu):

列名 數(shù)據(jù)類型 描述
name sysname 對(duì)象名,常用列
id int 對(duì)象標(biāo)識(shí)號(hào)
xtype char(2) 對(duì)象類型。常用列。xtype可以是下列對(duì)象類型中的一種:
C = CHECK 約束  D = 默認(rèn)值或 DEFAULT 約束  F = FOREIGN KEY 約束  L = 日志  FN = 標(biāo)量函數(shù)
IF = 內(nèi)嵌表函數(shù)   P = 存儲(chǔ)過(guò)程   PK = PRIMARY KEY 約束(類型是 K)   RF = 復(fù)制篩選存儲(chǔ)過(guò)程
S = 系統(tǒng)表   TF = 表函數(shù)   TR = 觸發(fā)器   U = 用戶表   UQ = UNIQUE 約束(類型是 K)
V = 視圖   X = 擴(kuò)展存儲(chǔ)過(guò)程
uid smallint 所有者用戶對(duì)象編號(hào)
info smallint 保留。僅限內(nèi)部使用
status int 保留。僅限內(nèi)部使用
base_schema_ ver int 保留。僅限內(nèi)部使用
replinfo int 保留。供復(fù)制使用
parent_obj int 父對(duì)象的對(duì)象標(biāo)識(shí)號(hào)(例如,對(duì)于觸發(fā)器或約束,該標(biāo)識(shí)號(hào)為表 ID)。
crdate datetime 對(duì)象的創(chuàng)建日期。
ftcatid smallint 為全文索引注冊(cè)的所有用戶表的全文目錄標(biāo)識(shí)符,對(duì)于沒(méi)有注冊(cè)的所有用戶表則為 0
schema_ver int 版本號(hào),該版本號(hào)在每次表的架構(gòu)更改時(shí)都增加。
stats_schema_ ver int 保留。僅限內(nèi)部使用。
type char(2) 對(duì)象類型??梢允窍铝兄抵唬?/td>
C = CHECK 約束 D = 默認(rèn)值或 DEFAULT 約束 F = FOREIGN KEY 約束
FN = 標(biāo)量函數(shù) IF = 內(nèi)嵌表函數(shù) K = PRIMARY KEY 或 UNIQUE 約束
L = 日志 P = 存儲(chǔ)過(guò)程 R = 規(guī)則 RF = 復(fù)制篩選存儲(chǔ)過(guò)程
S = 系統(tǒng)表 TF = 表函數(shù) TR = 觸發(fā)器 U = 用戶表 V = 視圖 X = 擴(kuò)展存儲(chǔ)過(guò)程
userstat smallint 保留。
sysstat smallint 內(nèi)部狀態(tài)信息
indexdel smallint 保留
refdate datetime 留用
version int 保留
deltrig int 保留
instrig int 保留
updtrig int 保留
seltrig int 保留
category int 用于發(fā)布、約束和標(biāo)識(shí)
cache smallint 保留

以后繼續(xù)補(bǔ)充。

某些朋友的一些疑問(wèn):

1、問(wèn):object_id(N'表名')中N'代表什么意思?

答:N'' 代表 Unicode類型.可以支持不同語(yǔ)種的對(duì)象名

2、 問(wèn):select * from dbo.sysobjects where id = object_id(N'[dbo].[usertab]') and OBJECTPROPERTY(id, N'IsUserTable') = 1

這句中的object_id(N'[dbo].[usertab]')和OBJECTPROPERTY(id, N'IsUserTable') = 1

是什么意思?

答:object_id(N'[dbo].[usertab]'):是得出系統(tǒng)給表usertab分配的唯一ID

OBJECTPROPERTY(id, N'IsUserTable') = 1

該對(duì)象的屬性是表類型的 objectproperty(id,property)函數(shù)的使用,

3、 問(wèn):USE master SELECT * FROM ...SysObjects ” ...sysobjects ” -- 三個(gè)句點(diǎn)的前綴是什么意思?

答:對(duì)數(shù)據(jù)庫(kù)對(duì)象名的 Transact-SQL 引用可以是由四部分組成的名稱,格式如下:[ server_name.[[database_name].[owner_name]. | database_name.[owner_name]. | owner_name.] ] object_name

未完待續(xù)(XX尚未成功,后面要靠大家了)……

《一棵樹(shù)-博客園》

收集整理,轉(zhuǎn)載請(qǐng)注明出處!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是SQL數(shù)據(jù)庫(kù): SQL是Structured Query Language(結(jié)構(gòu)化查詢語(yǔ)言)的縮寫(xiě)。SQL是...
    西貝巴巴閱讀 1,996評(píng)論 0 10
  • 2017/3/14 RDBMS:關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng) 關(guān)系模型獨(dú)立于語(yǔ)言 SQL有幾種不同類型的語(yǔ)言:數(shù)據(jù)定義語(yǔ)言...
    ancherl閱讀 1,796評(píng)論 0 6
  • 50個(gè)常用的sql語(yǔ)句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,334評(píng)論 0 7
  • 姓名:于川皓 學(xué)號(hào):16140210089 轉(zhuǎn)載自:https://baike.baidu.com/item/sq...
    道無(wú)涯_cc76閱讀 2,044評(píng)論 0 2
  • 基礎(chǔ)語(yǔ)句 1. 創(chuàng)建數(shù)據(jù)庫(kù) CREATE DATABASE database_name 2. 刪除數(shù)據(jù)庫(kù) drop...
    敲代碼的本愿閱讀 1,105評(píng)論 1 7

友情鏈接更多精彩內(nèi)容