Daftar Kolom / Field Table pada "sys.columns"

posted Mar 9, 2012, 12:54 AM by Webmaster BelajarSQL.com   [ updated Mar 9, 2012, 4:50 AM ]
sys.columns adalah catalog view yang berisi informasi metadata dari tiap kolom yang ada pada suatu table atau view di dalam suatu database.

Daftar Field pada sys.columns

View ini memiliki daftar field sebagai berikut :
  1. object_id : adalah kode identifikasi dari object (table / view) dimana kolom ini menjadi bagian, object_id direlasikan dengan view sys.objects untuk mendapatkan informasi lebih lanjut mengenai object ini.
  2. name : nama kolom
  3. column_id : kode identifikasi kolom.
  4. system_type_id :  kode / id dari tipe data column tersebut, direlasikan dengan view sys.types.  
  5. user_type_id : kode / id dari tipe data column tersebut, direlasikan dengan view sys.types. user_type_id biasanya sama dengan system_type_id, tapi akan berbeda jika menggunakan user defined data type.
  6. max_length : jumlah maksimum (dalam byte). Jika tipe datanya berupa text maka nilainya 16, sedangkan jika varchar, varbinary atau xml maka nilainya -1.
  7. precision : jika tipe datanya adalah numerik maka field ini menunjukkan jumlah maksimum digit (bukan byte) sebelum titik desimal. Jika bukan numerik, maka nilainya 0.
  8. scale :  jika tipe datanya adalah numerik maka field ini menunjukkan jumlah maksimum digit (bukan byte) setelah titik desimal. Jika bukan numerik, maka nilainya 0.
  9. collation_name : nama collation - yang akan terisi jika tipe datanya berbasis karakter, selain itu nilainya null.
  10. is_nullable : bisa berisi null (1) atau tidak (0).
  11. is_ansi_padded  : menunjukkan apakah konfigurasi ANSI_PADDING on (1) atau off (0).
  12. is_rowguidcol  : menunjukkan apakah kolom ini diisi dengan nilai unik secara global (GUID - Globally Unique Identifier). Jika bernilai 1 maka diisi dengan GUID, sedangkan 0 menunjukkan sebaliknya.
  13. is_identity  : menunjukkan kolom ini berupa kolom identity / auto number (1) atau bukan (0).
  14. is_computed  : menunjukkan kolom ini berupa computed column (1) atau bukan (0).
  15. is_filestream  : menunjukkan kolom ini berupa filestream (1) atau bukan (0).
  16. is_replicated  : menunjukkan kolom ini juga turut dilibatkan dalam replikasi (1) atau tidak (0).
  17. is_non_sql_subscribed : menunjukkan apakah kolom ini diambil oleh tipe database lain dalam schema subscription (1) atau tidak (0).
  18. is_merge_published : menunjukkan apakah kolom ini merge-published (1) atau tidak (0).
  19. is_dts_replicated : menunjukkan apakah kolom direplikasi oleh SSIS (1) atau tidak (0).
  20. is_xml_document : menunjukkan apakah isi kolom merupakan dokumen XML lengkap (1) atau partial / tidak sama sekali (0).
  21. xml_collection_id : menunjukkan collection id dari content berupa XML.
  22. default_object_id : kode identifikasi (id) default dari object.
  23. rule_object_id : kode identifikasi dari rule / aturan yang terkait ke kolom tersebut (lihat sys.sp_bindrule).
  24. is_sparse  : menunjukan apakah kolom merupakan sparse column (1) atau tidak (0).
  25. is_column_set  : menunjukkan apakah kolom adalah column set pada sparse column (1) atau bukan (0).

Beberapa Contoh Penggunaan

  • Melihat daftar table user, kolom dan panjang maksimum kolom pada suatu database.

    SELECT s2.NAME AS nama_table
    	,s1.NAME AS nama_kolom
    	,s3.NAME AS tipe_data
    	,s1.max_length
    FROM sys.columns s1
    INNER JOIN sys.objects s2
    	ON s1.object_id = s2.object_id
    INNER JOIN sys.types s3
    	ON s1.system_type_id = s3.system_type_id
    WHERE s2.type = 'U'



  • Melihat daftar table user, kolom yang tidak boleh memiliki nilai null serta tipe datanya.

    SELECT s2.NAME AS nama_table
    	,s1.NAME AS nama_kolom
    	,s3.NAME AS tipe_data
    FROM sys.columns s1
    INNER JOIN sys.objects s2
    	ON s1.object_id = s2.object_id
    INNER JOIN sys.types s3
    	ON s1.system_type_id = s3.system_type_id
    WHERE s2.type = 'U'
    	AND s1.is_nullable = 0


Sumber Referensi

Comments