場景:查詢DNMes數據庫中所有包含RFID字段的表名
sql語句:
1 select object_name(id) objName,Name as colName 2 from syscolumns 3 where (name like'%此次寫需要查詢的字段名稱%') and id in(select id from sysobjects where xtype='u') 4 order by objname
測試查詢sql語句:
1 select object_name(id) objName,Name as colName 2 from syscolumns 3 where (name like'RFID') and id in(select id from sysobjects where xtype='u') 4 order by objname
測試結果:
objName |
colName |
PR_BindingTray | RFID |
PR_DiffCaseBindingTray | RFID |
PR_DiffCaseStationStatus | RFID |
PR_StationStatus | RFID |
系統表:sysobjects,sysolumns,object_id()函數,object_name()函數
一、sysobjects:在數據庫內創建的每個對象(約束、默認值、日志、規則、存儲過程等)在表中占一行。
sysobjects 重要字段解釋:
sysobjects (
Name sysname, --object 名稱
id int, --object id
xtype char(2), -- object 類型
type char(2), -- Object 類型(與xtype 似乎一模一樣)
uid smallint, -- object 所有者的ID
... --其他的字段不常用到。
)
xtype可以是下列對象類型中的一種:
C = CHECK 約束 D = 默認值或 DEFAULT 約束 F = FOREIGN KEY 約束 L = 日志 FN = 標量函數
IF = 內嵌表函數 P = 存儲過程 PK = PRIMARY KEY 約束(類型是 K) RF = 復制篩選存儲過程
S = 系統表 TF = 表函數 TR = 觸發器 U = 用戶表 UQ = UNIQUE 約束(類型是 K)
V = 視圖 X = 擴展存儲過程
type可以是下列值之一:
C = CHECK 約束 D = 默認值或 DEFAULT 約束 F = FOREIGN KEY 約束
FN = 標量函數 IF = 內嵌表函數 K = PRIMARY KEY 或 UNIQUE 約束
L = 日志 P = 存儲過程 R = 規則 RF = 復制篩選存儲過程
S = 系統表 TF = 表函數 TR = 觸發器 U = 用戶表 V = 視圖 X = 擴展存儲過程
二、sysolumns:當前數據庫的所有字段都保留在里面
重要字段解釋:
sysColumns (
name sysname, --字段名稱
id int, --該字段所屬的表的ID
xtype tinyInt, --該字段類型,關聯sysTypes表
length smallint, --該字段物理存儲長度
...--其他的字段不常用到
)
三、object_id(objectname),object_name(objectid)函數
數據庫中每個對像都有一個唯一的Id值,用Object_name(id)可以根據id值得到對像的名稱,object_id(name)可以根據對像名稱得到對象的ID
SQL SERVER 2000以上版本都支持這個函數。