Saat Anda membuat kolom yang dihitung di SQL Server, ekspresi yang Anda gunakan untuk kolom akan menjadi deterministik atau nondeterministik. Hal ini dapat memiliki implikasi, seperti apakah Anda dapat menggunakannya dalam indeks atau menandainya sebagai "bertahan".
Kolom deterministik adalah kolom yang akan mengembalikan nilai yang sama untuk sekumpulan nilai input tertentu dan diberi status database yang sama. Kolom nondeterministik dapat mengembalikan nilai yang berbeda meskipun diberi input yang sama meskipun status basis data tetap sama. Misalnya, fungsi yang mengembalikan tanggal saat ini bersifat nondeterministik, karena akan mengembalikan nilai yang berbeda setiap hari.
Anda dapat menggunakan COLUMNPROPERTY()
fungsi dengan IsDeterministic
argumen untuk mengetahui apakah kolom yang dihitung deterministik atau tidak.
Contoh
Berikut ini contoh untuk didemonstrasikan.
SELECT COLUMNPROPERTY( OBJECT_ID('dbo.Products'), 'TotalValue', 'IsDeterministic') AS IsDeterministic;
Hasil:
+-------------------+ | IsDeterministic | |-------------------| | 1 | +-------------------+
Dalam hal ini TotalValue
kolom dari dbo.Products
tabel adalah deterministik. Jika tidak, hasilnya adalah 0
.
IsDeterministic
properti hanya berlaku untuk kolom yang dihitung dan kolom tampilan.