sys.columns (Transact-SQL)

適用於:SQL ServerAzure SQL 資料庫Azure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析端點Microsoft Fabric 中的倉儲

針對具有數據行的物件每個數據行,例如檢視或數據表,傳回一個數據列。 以下是具有資料行的物件類型清單:

  • 資料表值元件函式 (FT)

  • 內嵌資料表值 SQL 函式 (IF)

  • 內部資料表 (IT)

  • 系統資料表 (S)

  • 資料表值 SQL 函式 (TF)

  • 使用者資料表 (U)

  • 檢視 (V)

資料行名稱 資料類型 描述
object_id int 這個數據行所屬之對象的標識碼。
NAME sysname 資料行的名稱。 在物件中是唯一的。
column_id int 數據行的識別碼。 在物件中是唯一的。

數據行標識碼可能不是循序的。
system_type_id tinyint 數據行之系統類型的識別碼。
user_type_id int 使用者所定義之數據行類型的識別碼。

若要傳回類型的名稱,請聯結至 此數據行上的 sys.types 目錄檢視。
max_length smallint 數據行的最大長度(以位元組為單位)。

-1 = 數據行數據類型為 varchar(max)nvarchar(max)varbinary(max)xml

針對 textntextimage 數據行,max_length值會是 16(僅代表 16 位元組指標),或sp_tableoption 'text in row' 所設定的值。
有效位數 tinyint 如果以數值為基礎,則為數據行的有效位數;否則為 0。
scale tinyint 如果以數值為基礎,則為數據行小數字數;否則為 0。
collation_name sysname 如果以字元為基礎,則為數據行定序的名稱;否則 NULL為 。
is_nullable bit 1 = 資料行可為 Null。
is_ansi_padded bit 1 = 如果字元、二進位或變體,Column 會使用 ANSI_PADDING ON 行為。

0 = 資料行不是字元、二進位或變體。
is_rowguidcol bit 1 = Column 是宣告的 ROWGUIDCOL。
is_identity bit 1 = 資料行具有識別值
is_computed bit 1 = 資料列是計算資料行。
is_filestream bit 1 = 資料行是 FILESTREAM 資料行。
is_replicated bit 1 = 資料行已復寫。
is_non_sql_subscribed bit 1 = 數據行具有非 SQL Server 訂閱者。
is_merge_published bit 1 = 資料行已合併發行。
is_dts_replicated bit 1 = 使用 SSIS 複寫數據行。
is_xml_document bit 1 = 內容是完整的 XML 檔。

0 = 內容是檔片段,或數據行數據類型不是 xml
xml_collection_id int 如果數據行的數據類型為 xml,且 XML 的類型為 , 則為非零。 值將是集合的標識碼,其中包含數據行的驗證 XML 架構命名空間。

0 = 沒有 XML 架構集合。
default_object_id int 不論它是獨立物件sys.sp_bindefault還是內嵌數據行層級 DEFAULT 條件約束,默認對象的標識碼。 內嵌數據行層級預設物件的parent_object_id數據行是數據表本身的參考。

0 = 無預設值。
rule_object_id int 使用sys.sp_bindrule系結至數據行的獨立規則標識碼。

0 = 沒有獨立規則。 如需資料行層級 CHECK 條件約束,請參閱 sys.check_constraints (Transact-SQL)
is_sparse bit 1 = 資料行是疏鬆數據行。 如需詳細資訊,請參閱 使用疏鬆資料行
is_column_set bit 1 = 資料行是資料行集。 如需詳細資訊,請參閱 使用疏鬆資料行
generated_always_type tinyint 適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。 5、6、7、8 僅適用於 SQL 資料庫。

識別何時產生資料行值(系統數據表中的數據行一律為 0):

0 = NOT_APPLICABLE
1 = AS_ROW_START
2 = AS_ROW_END
5 = AS_TRANSACTION_ID_START
6 = AS_TRANSACTION_ID_END
7 = AS_SEQUENCE_NUMBER_START
8 = AS_SEQUENCE_NUMBER_END

如需詳細資訊,請參閱時態表(關係資料庫)。
generated_always_type_desc nvarchar(60) 適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。

值文字描述 generated_always_type(系統資料表中的數據行一律NOT_APPLICABLE)

NOT_APPLICABLE
AS_ROW_START
AS_ROW_END

適用於:從 SQL Server 2022 (16.x) 開始,SQL 資料庫

AS_TRANSACTION_ID_START
AS_TRANSACTION_ID_END
AS_SEQUENCE_NUMBER_START
AS_SEQUENCE_NUMBER_END
encryption_type int 適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。

加密類型:

1 = 確定性加密

2 = 隨機化加密
encryption_type_desc nvarchar(64) 適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。

加密類型描述:

隨機

DETERMINISTIC
encryption_algorithm_name sysname 適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。

加密演算法的名稱。

僅支援AEAD_AES_256_CBC_HMAC_SHA_512。
column_encryption_key_id int 適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。

CEK 的識別碼。
column_encryption_key_database_name sysname 適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。

如果數據行加密金鑰與資料列的資料庫不同,則為資料庫的名稱。 NULL 如果索引鍵存在於與資料行相同的資料庫中,則為 。
is_hidden bit 適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。

指出資料列是否隱藏:

0 = 一般、不隱藏、可見的數據行

1 = 隱藏資料列
is_masked bit 適用於:SQL Server 2016 (13.x) 和更新版本,以及 SQL Database。

指出數據行是否由動態數據遮罩遮罩來遮罩:

0 = 一般、未遮罩的數據行

1 = 資料行已遮罩
graph_type int 具有一組值的內部數據行。 圖表數據行和 NULL 其他人的值介於 1-8 之間。
graph_type_desc nvarchar(60) 具有一組值的內部數據行
is_data_deletion_filter_column bit 適用於:Azure SQL Edge 指出數據行是否為數據表的數據保留篩選數據行。
ledger_view_column_type tinyint 適用於:從 SQL Server 2022 (16.x) 開始,SQL 資料庫。

如果不是 NULL,表示總賬檢視中的數據行類型:

1 = TRANSACTION_ID
2 = SEQUENCE_NUMBER
3 = OPERATION_TYPE
4 = OPERATION_TYPE_DESC

如需資料庫總賬的詳細資訊,請參閱 總賬
ledger_view_column_type_desc nvarchar(60) 適用於:從 SQL Server 2022 (16.x) 開始,SQL 資料庫。

如果不是 NULL,則包含總賬檢視中資料行類型的文字描述:

TRANSACTION_ID
SEQUENCE_NUMBER
OPERATION_TYPE
OPERATION_TYPE_DESC
is_dropped_ledger_table_column bit 適用於:從 SQL Server 2022 (16.x) 開始,SQL 資料庫。

指出已卸除的總賬數據表數據行。

權限

目錄檢視中元數據的可見度僅限於用戶擁有的安全性實體,或用戶獲授與某些許可權的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration

另請參閱

系統檢視 (Transact-SQL)
物件目錄檢視 (Transact-SQL)
目錄檢視 (Transact-SQL)
查詢 SQL Server 系統目錄常見問題
sys.all_columns (Transact-SQL)
sys.system_columns (Transact-SQL)