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 等於所有者的使用者識別碼。 重要提示:如果使用以下任何一個 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。 |
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