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.