sys.columns (Transact-SQL)
適用于:SQL Server
Azure SQL資料庫
Azure SQL 受控執行個體Azure Synapse
Analytics Analytics
Platform System (PDW)
針對具有資料行之物件 (例如檢視或資料表) 的每個資料行,各傳回一個資料列。 下面是具有資料行的物件類型清單:
資料表值組件函數 (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。 針對 text、 Ntext和 image 資料行,max_length值會是 16 (,代表 16 位元組指標) 或sp_tableoption 'text in row' 所設定的值。 |
精確度 | tinyint | 如果是以數值為基礎,便是資料行的有效位數;否則,便是 0。 |
級別 | tinyint | 如果是以數值為基礎,便是資料行的小數位數;否則,便是 0。 |
collation_name | sysname | 如果以字元為基礎,則為數據行定序的名稱;否則 NULL 為 。 |
is_nullable | bit | 1 = 資料行可為 Null。 |
is_ansi_padded | bit | 1 = 如果是字元、二進位或變數,則資料行會使用 ANSI_PADDING ON 行為。 0 = 資料行不是字元、二進位或變數。 |
is_rowguidcol | bit | 1 = 資料行是已宣告的 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 Database。 識別系統資料表中的資料行值在產生 (時一律為 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 Database 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 | 具有一組值的內部資料行。 圖表資料行的值介於 1-8 之間,而其他值則介於 1 到 NULL 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 Database。 如果不是 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 Database。 如果不是 Null,則包含總帳檢視中資料行類型的文字描述: TRANSACTION_ID SEQUENCE_NUMBER OPERATION_TYPE OPERATION_TYPE_DESC |
is_dropped_ledger_table_column | bit | 適用于:從 2022 SQL Server 2022 (16.x) 開始,SQL Database。 表示已卸載的總帳資料表資料行。 |
權限
目錄檢視內中繼資料的可見性會限制在使用者所擁有的安全性實體,或已授與使用者某些權限的安全性實體。 如需相關資訊,請參閱 Metadata Visibility Configuration。
另請參閱
系統檢視 (Transact-SQL)
物件目錄檢視 (Transact-SQL)
目錄檢視 (Transact-SQL)
查詢 SQL Server 系統目錄 FAQ
sys.all_columns (Transact-SQL)
sys.system_columns (Transact-SQL)