適用於:SQL Server
Azure SQL 資料庫
Azure SQL 受控執行個體
Azure Synapse Analytics
Analytics Platform System (PDW)
Microsoft Fabric 的 SQL 端點分析
Microsoft Fabric 的倉儲
包含每個系統和使用者定義類型的數據列。
資料行名稱 | 資料類型 | 描述 |
---|---|---|
name |
sysname | 型別的名稱。 在架構中是唯一的。 |
system_type_id |
tinyint | 內部系統類型的識別碼。 |
user_type_id |
int | 型別的標識碼。 資料庫內是唯一的。 hierarchyid、geometry 和 geography 等 CLR 元件類型將會有不同的 system_type_id ,而且可以使用 來is_assembly_type 識別。 sysname 數據類型是以 nvarchar 為基礎的內部數據類型。 |
schema_id |
int | 型別所屬之架構的標識碼。 |
principal_id |
int | 如果與架構擁有者不同,則為個別擁有者的標識符。 根據預設,架構自主物件是由架構擁有者所擁有。 不過,您可以使用 ALTER AUTHORIZATION 語句來變更擁有權,來指定替代擁有者。NULL 如果沒有替代的個別擁有者,則為 。 |
max_length |
smallint | 型別的最大長度(以位元組為單位)。 - 1 = 數據行數據類型為 varchar(max)、 nvarchar(max)、 varbinary(max)或 xml。如果是 文字數據 行,此值 max_length 會是 16。 |
precision |
tinyint | 如果類型是以數值為基礎,則為最大有效位數;否則為 0。 |
scale |
tinyint | 如果類型是以數值為基礎,則為最大小數字數;否則為 0。 |
collation_name |
sysname | 如果型別是以字元為基礎,則為型別的定序名稱;否則為 NULL 。 |
is_nullable |
bit | 類型為可為 Null。 |
is_user_defined |
bit | 1 = 使用者定義型別。0 = SQL Server 系統數據類型。 |
is_assembly_type |
bit | 1 = 型別的實作定義在CLR元件中。0 = 類型是以 SQL Server 系統數據類型為基礎。 |
default_object_id |
int | 使用 sp_bindefault 系結至型別的獨立預設值標識碼。0 = 不存在預設值。 |
rule_object_id |
int | 使用 sp_bindrule 系結至類型的獨立規則標識碼。0 = 不存在規則。 |
is_table_type |
bit | 表示類型為數據表。 |
權限
目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration。
使用範例
取得數據表的數據行詳細數據
若要取得資料表中資料列的元數據,您可以使用下列程式代碼:
CREATE TABLE dbo.[sample] (
id INT NOT NULL
,col1 VARBINARY(10) NULL
)
GO
SELECT c.[name] AS column_name
,t.[name] AS [type_name]
,c.[max_length]
,c.[precision]
,c.[scale]
FROM sys.columns c
INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE object_id = object_id('dbo.sample');