【转自CDDN】随笔:sysobjects.Xtype
sysobjects.Xtype
SQL?Server數(shù)據(jù)庫的一切信息都保存在它的系統(tǒng)表格里。?在大多數(shù)情況下,對(duì)你最有用的兩個(gè)列是Sysobjects.name和Sysobjects.xtype。前面一個(gè)用來列出待考察對(duì)象的名字,而后一個(gè)用來定義對(duì)象的類型
sysobjects
在數(shù)據(jù)庫內(nèi)創(chuàng)建的每個(gè)對(duì)象(約束、默認(rèn)值、日志、規(guī)則、存儲(chǔ)過程等)在表中占一行。只有在?tempdb?內(nèi),每個(gè)臨時(shí)對(duì)象才在該表中占一行。
| name | sysname | 對(duì)象名。 |
| Id | int | 對(duì)象標(biāo)識(shí)號(hào)。 |
| xtype | char(2) | 對(duì)象類型。可以是下列對(duì)象類型中的一種: C = CHECK 約束 |
| uid | smallint | 所有者對(duì)象的用戶 ID。 |
| 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ì)于沒有注冊(cè)的所有用戶表則為 0。 |
| schema_ver | int | 版本號(hào),該版本號(hào)在每次表的架構(gòu)更改時(shí)都增加。 |
| stats_schema_ ver | int | 保留。僅限內(nèi)部使用。 |
| type | char(2) | 對(duì)象類型。可以是下列值之一: C = CHECK 約束? |
| 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 | 保留。 |
Type是在6.0就有的,XType在7.0才出現(xiàn):
Type
對(duì)象類型。可以是下列值之一:?
C = CHECK 約束?
D = 默認(rèn)值或 DEFAULT 約束
F = FOREIGN KEY 約束?
FN = 標(biāo)量函數(shù)
IF = 內(nèi)嵌表函數(shù)
K = PRIMARY KEY 或 UNIQUE 約束?
L = 日志
P = 存儲(chǔ)過程
R = 規(guī)則
RF = 復(fù)制篩選存儲(chǔ)過程
S = 系統(tǒng)表?
TF = 表函數(shù)
TR = 觸發(fā)器
U = 用戶表
V = 視圖
X = 擴(kuò)展存儲(chǔ)過程
XType
對(duì)象類型。可以是下列對(duì)象類型中的一種:?
C = CHECK 約束
D = 默認(rèn)值或 DEFAULT 約束
F = FOREIGN KEY 約束
L = 日志
FN = 標(biāo)量函數(shù)
IF = 內(nèi)嵌表函數(shù)
P = 存儲(chǔ)過程
PK = PRIMARY KEY 約束(類型是 K)
RF = 復(fù)制篩選存儲(chǔ)過程
S = 系統(tǒng)表
TF = 表函數(shù)
TR = 觸發(fā)器
U = 用戶表
UQ = UNIQUE 約束(類型是 K)
V = 視圖
X = 擴(kuò)展存儲(chǔ)過程
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[text]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[text]
答:N'' 代表 Unicode類型,National縮寫。可以支持不同語種的對(duì)象名 2、 問: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ù)的使用,參考:http://www.cnblogs.com/greateast/archive/2007/07/31/837312.html 3、 問: USE master?
SELECT * FROM ...sysobjects “...sysobjects”三個(gè)句點(diǎn)的前綴是什么意思? 答: 對(duì)數(shù)據(jù)庫對(duì)象名的 Transact-SQL 引用可以是由四部分組成的名稱,格式如下:[ server_name.[[database_name].[owner_name]. | database_name.[owner_name]. | owner_name.] ] object_name
當(dāng)引用某個(gè)特定對(duì)象時(shí),不必總是為 SQL Server 指定標(biāo)識(shí)該對(duì)象的服務(wù)器、數(shù)據(jù)庫和所有者。可以省略中間級(jí)節(jié)點(diǎn),而使用句點(diǎn)表示這些位置。對(duì)象名的有效格式是:
server.database.owner.object
server.database..object
server..owner.object
server...object
database.owner.object
database..object
owner.object
?
例: 1.找出所有用戶表: select id,name,xtype,crdate from sysobjects where? xtype='U'order by name;
--或者
select id,name,xtype,crdate from sysobjects where objectproperty(id,N'IsUserTable')=1?
order by name; 2.找出所有存儲(chǔ)過程 select id,name,xtype,crdate from sysobjects where? xtype='P'
order by name;
--或者
select id,name,xtype,crdate from sysobjects where objectproperty(id,N'IsProcedure')=1?
order by name;
轉(zhuǎn)載于:https://www.cnblogs.com/wupingzsf/archive/2011/09/10/2173396.html
與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【转自CDDN】随笔:sysobjects.Xtype的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]gtest使用
- 下一篇: WCF事务编程[中篇]