Di SQL Server, Anda dapat menggunakan sys.columns
tampilan katalog sistem untuk mengembalikan daftar kolom yang tidak dihitung dari tabel.
Dengan "tidak dihitung", maksud saya hanya kolom yang bukan kolom yang dihitung.
Contoh
Berikut ini contoh untuk didemonstrasikan.
SELECT name AS [Column], TYPE_NAME(user_type_id) AS [Data Type], max_length, is_computed FROM sys.columns WHERE OBJECT_NAME(object_id) = 'Products' AND is_computed = 0;
Hasil:
+-------------+-------------+--------------+---------------+ | Column | Data Type | max_length | is_computed | |-------------+-------------+--------------+---------------| | ProductID | int | 4 | 0 | | ProductName | varchar | 255 | 0 | | Quantity | smallint | 2 | 0 | | Price | money | 8 | 0 | +-------------+-------------+--------------+---------------+
sys.columns
view mengembalikan banyak kolom, jadi saya telah mempersempitnya di sini menjadi hanya segelintir.
Dalam hal ini, nama tabelnya adalah Products
. Jika saya tidak memfilternya, saya akan mendapatkan daftar kolom yang sangat besar dari semua tabel (termasuk tabel sistem), tampilan, fungsi bernilai tabel, dll.
Saya menyertakan is_computed
kolom di sini hanya agar Anda dapat melihat bahwa kolom ini memiliki 0
di kolom itu.
Saya kebetulan tahu bahwa tabel ini memiliki kolom terhitung yang disebut TotalValue
. Ini kuerinya lagi, tetapi kali ini menampilkan semua kolom (termasuk kolom yang dihitung).
SELECT name AS [Column], TYPE_NAME(user_type_id) AS [Data Type], max_length, is_computed FROM sys.columns WHERE OBJECT_NAME(object_id) = 'Products';
Hasil:
+-------------+-------------+--------------+---------------+ | Column | Data Type | max_length | is_computed | |-------------+-------------+--------------+---------------| | ProductID | int | 4 | 0 | | ProductName | varchar | 255 | 0 | | Quantity | smallint | 2 | 0 | | Price | money | 8 | 0 | | TotalValue | money | 8 | 1 | +-------------+-------------+--------------+---------------+