Oke, dari sudut pandang pengembang aplikasi, inilah yang dilakukan setelan ini:
QUOTED_IDENTIFIER
Pengaturan ini mengontrol bagaimana tanda kutip ".."
ditafsirkan oleh kompiler SQL. Ketika QUOTED_IDENTIFIER
AKTIF maka tanda kutip diperlakukan seperti tanda kurung ([...]
) dan dapat digunakan untuk mengutip nama objek SQL seperti nama tabel, nama kolom, dll. Ketika OFF (tidak disarankan), maka tanda kutip diperlakukan seperti apostrof ('..'
) dan dapat digunakan untuk mengutip string teks dalam perintah SQL.
ANSI_NULLS
Setelan ini mengontrol apa yang terjadi saat Anda mencoba menggunakan operator perbandingan selain IS
pada NULL. Ketika AKTIF, perbandingan ini mengikuti standar yang mengatakan bahwa membandingkan dengan NULL selalu gagal (karena itu bukan nilai, itu Bendera) dan mengembalikan FALSE
. Saat setelan ini MATI (benar-benar tidak disarankan) Anda berhasil memperlakukannya seperti nilai dan menggunakan =
, <>
, dll. di atasnya dan kembali TRUE sebagai yang sesuai.
Cara yang tepat untuk menangani ini adalah dengan menggunakan IS
(ColumnValue IS NULL ..
).
CONCAT_NULL_YIELDS_NULL
Pengaturan ini mengontrol apakah NULL "Propogate" saat digunakan dalam ekspresi string. Saat pengaturan ini AKTIF, ia mengikuti standar dan ekspresi seperti 'some string' + NULL ..
selalu mengembalikan NULL. Jadi, dalam serangkaian rangkaian string, satu NULL dapat menyebabkan seluruh ekspresi mengembalikan NULL. Menonaktifkan ini (juga, tidak disarankan) akan menyebabkan NULL diperlakukan seperti string kosong, jadi 'some string' + NULL
hanya mengevaluasi ke 'some string'
.
Cara yang tepat untuk menangani ini adalah dengan fungsi COALESCE (atau ISNULL):'some string' + COALESCE(NULL, '') ..
.