sys.columns (Transact-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Mengembalikan baris untuk setiap kolom objek yang memiliki kolom, seperti tampilan atau tabel. Daftar berikut berisi tipe objek yang memiliki kolom:
- Fungsi rakitan bernilai tabel (FT)
- Fungsi SQL bernilai tabel sebaris (IF)
- Tabel internal (IT)
- Tabel sistem (S)
- Fungsi SQL bernilai tabel (TF)
- Tabel pengguna (U)
- Tampilan (V)
Nama kolom | Jenis data | Deskripsi |
---|---|---|
object_id |
int | ID objek tempat kolom ini berada. |
name |
nama sysname | Nama kolom. Unik dalam objek. |
column_id |
int | ID kolom. Unik dalam objek. ID kolom mungkin tidak berurutan. |
system_type_id |
kecil | ID jenis sistem kolom. |
user_type_id |
int | ID jenis kolom seperti yang ditentukan oleh pengguna. Untuk mengembalikan nama jenis, gabungkan ke tampilan katalog sys.type pada kolom ini. |
max_length |
smallint | Panjang maksimum (dalam byte) kolom.-1 = Jenis data kolom adalah varchar(max), nvarchar(max), varbinary(max), atau xml.Untuk kolom teks, ntext, dan gambar , max_length nilainya adalah 16 (mewakili pointer 16-byte saja) atau nilai yang ditetapkan oleh sp_tableoption 'text in row' . |
precision |
kecil | Presisi kolom jika berbasis numerik; jika tidak, 0 . |
scale |
kecil | Skala kolom jika berbasis numerik; jika tidak, 0 . |
collation_name |
nama sysname | Nama kolater kolom jika berbasis karakter; jika tidak NULL . |
is_nullable |
bit | 1 = Kolom dapat diubah ke null0 = Kolom tidak dapat diubah ke null |
is_ansi_padded |
bit | 1 = Kolom menggunakan ANSI_PADDING ON perilaku jika karakter, biner, atau varian0 = Kolom bukan karakter, biner, atau varian |
is_rowguidcol |
bit | 1 = Kolom adalah yang dideklarasikan ROWGUIDCOL |
is_identity |
bit | 1 = Kolom memiliki nilai identitas |
is_computed |
bit | 1 = Kolom adalah kolom komputasi |
is_filestream |
bit | 1 = Kolom adalah kolom FILESTREAM |
is_replicated |
bit | 1 = Kolom direplikasi |
is_non_sql_subscribed |
bit | 1 = Kolom memiliki pelanggan non-SQL Server |
is_merge_published |
bit | 1 = Kolom dipublikasikan gabungan |
is_dts_replicated |
bit | 1 = Kolom direplikasi dengan menggunakan SSIS |
is_xml_document |
bit | 1 = Konten adalah dokumen XML lengkap0 = Konten adalah fragmen dokumen, atau tipe data kolom bukan xml |
xml_collection_id |
int | Bukan nol jika tipe data kolom adalah xml dan XML diketik. Nilainya adalah ID koleksi yang berisi namespace skema XML validasi kolom0 = Tidak ada koleksi skema XML |
default_object_id |
int | ID objek default, terlepas dari apakah itu objek yang berdiri sendiri sp_bindefault, atau batasan tingkat DEFAULT kolom sebaris. Kolom parent_object_id objek default tingkat kolom sebaris adalah referensi kembali ke tabel itu sendiri.0 = Tidak ada default |
rule_object_id |
int | ID aturan mandiri yang terikat ke kolom dengan menggunakan sys.sp_bindrule. 0 = Tidak ada aturan yang berdiri sendiri. Untuk batasan tingkat CHECK kolom, lihat sys.check_constraints. |
is_sparse |
bit | 1 = Kolom adalah kolom jarang. Untuk informasi selengkapnya, lihat Menggunakan kolom jarang. |
is_column_set |
bit | 1 = Kolom adalah kumpulan kolom. Untuk informasi selengkapnya, lihat Menggunakan kolom jarang. |
generated_always_type |
kecil | Mengidentifikasi kapan nilai kolom dihasilkan (selalu 0 untuk kolom dalam tabel sistem).Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan SQL Database. 0 = NOT_APPLICABLE 1 = AS_ROW_START 2 = AS_ROW_END Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, dan SQL Database. 5 = AS_TRANSACTION_ID_START 6 = AS_TRANSACTION_ID_END 7 = AS_SEQUENCE_NUMBER_START 8 = AS_SEQUENCE_NUMBER_END Untuk informasi selengkapnya, lihat Tabel Temporal (Database relasional). |
generated_always_type_desc |
nvarchar(60) | Deskripsi generated_always_type tekstual nilai (selalu NOT_APPLICABLE untuk kolom dalam tabel sistem)Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan SQL Database. NOT_APPLICABLE AS_ROW_START AS_ROW_END Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, dan SQL Database. AS_TRANSACTION_ID_START AS_TRANSACTION_ID_END AS_SEQUENCE_NUMBER_START AS_SEQUENCE_NUMBER_END |
encryption_type |
int | Jenis enkripsi:1 = Enkripsi deterministik2 = Enkripsi acakBerlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan SQL Database |
encryption_type_desc |
nvarchar(64) | Deskripsi jenis enkripsi:RANDOMIZED DETERMINISTIC Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan SQL Database |
encryption_algorithm_name |
nama sysname | Nama algoritma enkripsi. Hanya AEAD_AES_256_CBC_HMAC_SHA_512 yang didukung.Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan SQL Database |
column_encryption_key_id |
int | ID kunci enkripsi kolom (CEK). Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan SQL Database |
column_encryption_key_database_name |
nama sysname | Nama database tempat kunci enkripsi kolom ada jika berbeda dari database kolom. NULL jika kunci ada dalam database yang sama dengan kolom .Berlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan SQL Database |
is_hidden |
bit | Menunjukkan apakah kolom disembunyikan:0 = kolom reguler, tidak tersembunyi, terlihat1 = kolom tersembunyiBerlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan SQL Database |
is_masked |
bit | Menunjukkan apakah kolom diselubungi oleh masking data dinamis:0 = kolom reguler, tidak bertopeng1 = kolom ditutupiBerlaku untuk: SQL Server 2016 (13.x) dan versi yang lebih baru, dan SQL Database |
graph_type |
int | Kolom internal dengan sekumpulan nilai. Nilainya antara 1 dan 8 untuk kolom grafik, dan NULL untuk yang lain. |
graph_type_desc |
nvarchar(60) | Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin. |
is_data_deletion_filter_column |
bit | Menunjukkan apakah kolom adalah kolom filter retensi data untuk tabel. Berlaku untuk: Azure SQL Edge |
ledger_view_column_type |
int | Jika tidak NULL , menunjukkan jenis kolom dalam tampilan ledger:1 = TRANSACTION_ID 2 = SEQUENCE_NUMBER 3 = OPERATION_TYPE 4 = OPERATION_TYPE_DESC Untuk informasi selengkapnya, lihat Gambaran umum Ledger. Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, dan SQL Database |
ledger_view_column_type_desc |
nvarchar(60) | Jika tidak NULL , berisi deskripsi tekstual dari jenis kolom dalam tampilan ledger:TRANSACTION_ID SEQUENCE_NUMBER OPERATION_TYPE OPERATION_TYPE_DESC Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, dan SQL Database |
is_dropped_ledger_column |
bit | Menunjukkan kolom tabel ledger yang dihilangkan. Berlaku untuk: SQL Server 2022 (16.x) dan versi yang lebih baru, dan SQL Database |
Izin
Visibilitas metadata dalam tampilan katalog terbatas pada keamanan yang dimiliki pengguna, atau di mana pengguna diberikan beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.
Contoh penggunaan
Mendapatkan detail kolom untuk tabel
Untuk mendapatkan metadata untuk kolom dalam tabel, Anda bisa menggunakan kode berikut:
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');