1.系統表sysobjects
在數據庫中創建的每個對象(例如約束、默認值、日志、規則以及存儲過程)都對應一行。
name
sysname
對象名
id
int
對象標識號
xtype
char(2)
對象類型。可以是以下對象類型之一:
AF = 聚合函數 (CLR)
C = CHECK 約束
D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束
L = 日志
FN = 標量函數
FS = 程序集 (CLR) 標量函數
FT = 程序集 (CLR) 表值函數
IF = 內聯表函數
IT = 內部表
P = 存儲過程
PC = 程序集 (CLR) 存儲過程
PK = PRIMARY KEY 約束(類型為 K)
RF = 復制篩選存儲過程
S = 系統表
SN = 同義詞
SQ = 服務隊列
TA = 程序集 (CLR) DML 觸發器
TF = 表函數
TR = SQL DML 觸發器
TT = 表類型
U = 用戶表
UQ = UNIQUE 約束(類型為 K)
V = 視圖
X = 擴展存儲過程
uid
smallint
對象所有者的架構 ID。
對於從舊版 SQL Server 升級的數據庫,架構 ID 等於所有者的用戶 ID。
重要提示: 如果使用以下任何一個 SQL Server DDL 語句,則必須使用 sys.objects 目錄視圖而不是 sys.sysobjects。 CREATE | ALTER | DROP USER CREATE | ALTER | DROP ROLE CREATE | ALTER | DROP APPLICATION ROLE CREATE SCHEMA ALTER AUTHORIZATION ON OBJECT
如果用戶數和角色數超過 32,767,則發生溢出或返回 NULL。
有關詳細信息,請參閱查詢 SQL Server 系統目錄。
info
smallint
標識為僅供參考。不提供支持。不保證以後的兼容性。
status
int
標識為僅供參考。不提供支持。不保證以後的兼容性。
base_schema_ver
int
標識為僅供參考。不提供支持。不保證以後的兼容性。
replinfo
int
標識為僅供參考。不提供支持。不保證以後的兼容性。
parent_obj
int
父對象的對象標識號。例如,表 ID(如果父對象是觸發器或約束)。
crdate
datetime
對象的創建日期。
ftcatid
smallint
注冊為使用全文索引的所有用戶表的全文目錄標識符,對於沒有注冊的所有用戶表則為 0。
schema_ver
int
在每次更改表的架構時都會增加的版本號。始終返回 0。
stats_schema_ver
int
標識為僅供參考。不提供支持。不保證以後的兼容性。
type
char(2)
對象類型。可以是下列值之一:
AF = 聚合函數 (CLR)
C = CHECK 約束
D = 默認值或 DEFAULT 約束
F = FOREIGN KEY 約束
FN = 標量函數
FS = 程序集 (CLR) 標量函數
FT = 程序集 (CLR) 表值函數 IF = 內聯表函數
IT - 內部表
K = PRIMARY KEY 或 UNIQUE 約束
L = 日志
P = 存儲過程
PC = 程序集 (CLR) 存儲過程
R = 規則
RF = 復制篩選存儲過程
S = 系統表
SN = 同義詞
SQ = 服務隊列
TA = 程序集 (CLR) DML 觸發器
TF = 表函數
TR = SQL DML 觸發器
TT = 表類型
U = 用戶表
V = 視圖
X = 擴展存儲過程
userstat
smallint
標識為僅供參考。不提供支持。不保證以後的兼容性。
sysstat
smallint
標識為僅供參考。不提供支持。不保證以後的兼容性。
indexdel
smallint
標識為僅供參考。不提供支持。不保證以後的兼容性。
refdate
datetime
標識為僅供參考。不提供支持。不保證以後的兼容性。
version
int
標識為僅供參考。不提供支持。不保證以後的兼容性。
deltrig
int
標識為僅供參考。不提供支持。不保證以後的兼容性。
instrig
int
標識為僅供參考。不提供支持。不保證以後的兼容性。
updtrig
int
標識為僅供參考。不提供支持。不保證以後的兼容性。
seltrig
int
標識為僅供參考。不提供支持。不保證以後的兼容性。
category
int
用於發布、約束和標識。
cache
smallint
標識為僅供參考。不提供支持。不保證以後的兼容性。
參考 sys.sysobjects (Transact-SQL)
2.syscolumns
為每個表和視圖中的每列返回一行,並為數據庫中的存儲過程的每個參數返回一行。
name
sysname
列名或過程參數的名稱。
id
int
此列所屬表的對象 ID,或者與此參數關聯的存儲過程的 ID。
xtype
tinyint
sys.types 中的物理存儲類型。
typestat
tinyint
標識為僅供參考。不提供支持。不保證以後的兼容性。
xusertype
smallint
擴展的用戶定義數據類型的 ID。如果數據類型的數字超過 32,767,則溢出或返回 NULL。有關詳細信息,請參閱查詢 SQL Server 系統目錄。
length
smallint
sys.types 中的最大物理存儲長度。
xprec
tinyint
標識為僅供參考。不提供支持。不保證以後的兼容性。
xscale
tinyint
標識為僅供參考。不提供支持。不保證以後的兼容性。
colid
smallint
列 ID 或參數 ID。
xoffset
smallint
標識為僅供參考。不提供支持。不保證以後的兼容性。
bitpos
tinyint
標識為僅供參考。不提供支持。不保證以後的兼容性。
reserved
tinyint
標識為僅供參考。不提供支持。不保證以後的兼容性。
colstat
smallint
標識為僅供參考。不提供支持。不保證以後的兼容性。
cdefault
int
此列的默認值的 ID。
domain
int
此列的規則或 CHECK 約束的 ID。
number
smallint
過程分組時的子過程號。
0 = 非過程項
colorder
smallint
標識為僅供參考。不提供支持。不保證以後的兼容性。
autoval
varbinary(8000)
標識為僅供參考。不提供支持。不保證以後的兼容性。
offset
smallint
此列所在行的偏移量。
collationid
int
列的排序規則的 ID。對於非字符列,此值為 NULL。
status
tinyint
用於說明列或參數的屬性的位圖:
0x08 = 列允許空值。
0x10 = 添加 varchar 或 varbinary 列時,執行 ANSI 填充。保留 varchar 列的尾隨空格以及 varbinary 列的尾隨零。
0x40 = 參數為 OUTPUT 參數。
0x80 = 列為標識列。
type
tinyint
sys.types 中的物理存儲類型。
usertype
smallint
sys.types 中的用戶定義數據類型的 ID。如果數據類型數超過 32767,則會發生溢出或返回 NULL。有關詳細信息,請參閱查詢 SQL Server 系統目錄。
printfmt
varchar(255)
標識為僅供參考。不提供支持。不保證以後的兼容性。
prec
smallint
此列的精度級別。
-1 = xml 或大值類型。
scale
int
此列的小數位數。
NULL = 數據類型不是數值。
iscomputed
int
指示列是否為計算列的標志:
0 = 非計算列。
1 = 計算列。
isoutparam
int
指示過程參數是否為輸出參數:
1 = True
0 = False
isnullable
int
指示列是否允許空值:
1 = True
0 = False
collation
sysname
列的排序規則的名稱。如果不是基於字符的列,則為 NULL。
參考 sys.syscolumns (Transact-SQL)
刪除某數據庫內的表
declare dlist cursor for
select name from sysobjects where xtype='U'
open dlist
declare @n varchar(4000)
fetch next from dlist into @n
while @@fetch_status=0
begin
declare @es varchar(4000)
set @es='DROP table '+@n
exec( @es)
fetch next from dlist into @n
end
close dlist
DEALLOCATE dlist