Di SQL Server, COLUMNPROPERTY()
fungsi mengembalikan informasi kolom atau parameter.
Misalnya, Anda dapat menggunakannya untuk mengembalikan informasi tentang kolom dalam tabel, parameter untuk prosedur tersimpan, dll
Ia menerima tiga argumen:ID tabel atau prosedur, kolom atau parameter yang berlaku, dan properti yang Anda inginkan informasinya.
Sintaks
Sintaksnya seperti ini:
COLUMNPROPERTY ( id , column , property )
Contoh 1 – Membuat Kueri Tabel
Dalam contoh ini, saya mendapatkan informasi tentang kolom di dalam tabel.
USE Music; SELECT COLUMNPROPERTY(OBJECT_ID('Artists'), 'ArtistId', 'AllowsNull') AS [Result];
Hasil:
+----------+ | Result | |----------| | 0 | +----------+
Dalam hal ini, kolom ArtistId tidak mengizinkan nilai NULL.
Mari beralih ke kolom lain:
SELECT COLUMNPROPERTY(OBJECT_ID('Artists'), 'ActiveFrom', 'AllowsNull') AS [ActiveFrom], COLUMNPROPERTY(OBJECT_ID('Artists'), 'ActiveFrom', 'Precision') AS [Precision], COLUMNPROPERTY(OBJECT_ID('Artists'), 'ActiveFrom', 'Scale') AS [Scale];
Hasil:
+--------------+-------------+---------+ | ActiveFrom | Precision | Scale | |--------------+-------------+---------| | 1 | 10 | 0 | +--------------+-------------+---------+
Dalam hal ini, kolom ActiveFrom memungkinkan nilai NULL. Ini juga memiliki presisi 10 dan skala 0.
Anda akan melihat bahwa saya menggunakan OBJECT_ID()
berfungsi untuk mengembalikan ID tabel. Tanpa fungsi ini, saya perlu mengetahui ID (atau saya perlu melakukan kueri lain hanya untuk mendapatkan ID).
Ini dia OBJECT_ID()
kembali dalam contoh di atas:
SELECT OBJECT_ID('Artists') AS Result;
Hasil:
+-----------+ | Result | |-----------| | 885578193 | +-----------+
Jadi sekarang setelah kita mengetahui ID, kita dapat meneruskannya ke COLUMNPROPERTY()
fungsi sebagai gantinya:
SELECT COLUMNPROPERTY(885578193, 'ActiveFrom', 'AllowsNull') AS [ActiveFrom], COLUMNPROPERTY(885578193, 'ActiveFrom', 'Precision') AS [Precision], COLUMNPROPERTY(885578193, 'ActiveFrom', 'Scale') AS [Scale];
Hasil:
+--------------+-------------+---------+ | ActiveFrom | Precision | Scale | |--------------+-------------+---------| | 1 | 10 | 0 | +--------------+-------------+---------+
Contoh 2 – Mengkueri Prosedur
Dalam contoh ini, saya mendapatkan informasi tentang parameter prosedur tersimpan.
USE Music; SELECT COLUMNPROPERTY( OBJECT_ID('dbo.uspGetAlbumsByArtist'), '@ArtistId', 'IsOutParam') AS [Result];
Hasil:
+----------+ | Result | |----------| | 0 | +----------+
Jadi sintaksnya persis sama. Dalam hal ini, parameter @ArtistId
bukan parameter keluaran.
Daftar Lengkap Opsi
Berikut daftar lengkap argumen yang dapat Anda berikan ke COLUMNPROPERTY()
pada saat penulisan:
- AllowsNull
- Id Kolom
- FullTextTypeColumn
- GeneratedAlwaysType
- IsColumnSet
- Dihitung
- IsCursorType
- ApakahDeterministik
- IsFulltextIndexed
- Tersembunyi
- IsIdentity
- IsIdNotForRepl
- Dapat Diindeks
- IsOutParam
- Tepat
- IsRowGuidCol
- Jarang
- IsSystemVerified
- IsXmlIndexable
- Presisi
- Skala
- Semantik Statistik
- SystemDataAccess
- Akses DataPengguna
- MenggunakanAnsiTrim
Lihat dokumentasi Microsoft untuk penjelasan mendetail tentang setiap properti.
Lihat juga OBJECTPROPERTYEX()
untuk fungsi serupa yang mengembalikan informasi tentang objek cakupan skema daripada database, dan DATABASEPROPERTYEX()
yang mengembalikan info properti untuk database.