共用方式為


sys.types (Transact-SQL)

適用於: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 型別的標識碼。 資料庫內是唯一的。

hierarchyidgeometrygeographyCLR 元件類型將會有不同的 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');