SQL Server memiliki ANSI_NULLS
pengaturan yang menentukan bagaimana NULL
nilai dievaluasi jika dibandingkan dengan nilai lain dengan Persamaan (=
) dan Tidak Sama Dengan (<>
) operator perbandingan.
Meskipun benar bahwa Anda dapat mengubah ANSI_NULLS
pengaturan pada tingkat sesi (menggunakan SET ANSI_NULLS
), setiap database juga memiliki ANSI_NULLS
sendiri-sendiri pengaturan.
Anda dapat memeriksa database Anda untuk melihat apakah ANSI_NULLS
pengaturannya adalah ON
atau OFF
.
Untuk melakukan ini dengan T-SQL, Anda dapat menggunakan sys.databases
tampilan katalog atau DATABASEPROPERTYEX()
fungsi.
sys.databases
Lihat
sys.databases
tampilan katalog berisi banyak informasi tentang setiap database dalam contoh SQL Server Anda.
Kueri berikut mengembalikan ANSI_NULLS
pengaturan untuk Music
basis data:
SELECT is_ansi_nulls_on
FROM sys.databases
WHERE name = 'Music';
Hasil:
+--------------------+ | is_ansi_nulls_on | |--------------------| | 1 | +--------------------+
Dalam hal ini, ANSI_NULLS
adalah ON
untuk basis data ini.
Kita dapat mengubahnya OFF
seperti ini:
ALTER DATABASE Music
SET ANSI_NULLS OFF;
Anda dapat menghilangkan WHERE
klausa saat menggunakan sys.databases
tampilan katalog untuk mengembalikan data untuk semua database. Seperti ini:
SELECT
name,
is_ansi_nulls_on
FROM sys.databases
ORDER BY name ASC;
Tampilan ini juga memiliki kolom bernama is_ansi_null_default_on
, yang mengembalikan ANSI_NULL_DEFAULT
pengaturan untuk database.
ANSI_NULL_DEFAULT
pengaturan menentukan nilai default, NULL
atau NOT NULL
, dari kolom atau tipe yang ditentukan pengguna CLR yang nullability-nya tidak didefinisikan secara eksplisit di CREATE TABLE
atau ALTER TABLE
pernyataan.
Kita bisa memodifikasi contoh sebelumnya untuk memasukkan kolom ini:
SELECT
name,
is_ansi_nulls_on,
is_ansi_null_default_on
FROM sys.databases
ORDER BY name ASC;
DATABASEPROPERTYEX()
Fungsi
Cara lain untuk memeriksa pengaturan ini adalah dengan DATABASEPROPERTYEX()
fungsi.
Berikut cara memeriksa ANSI_NULLS
pengaturan untuk Music
DB:
SELECT DATABASEPROPERTYEX('Music','IsAnsiNullsEnabled');
Hasil:
+--------------------+ | (No column name) | |--------------------| | 0 | +--------------------+
Sekarang 0
untuk OFF
karena saya set ke OFF
dalam contoh sebelumnya.
Untuk memeriksa ANSI_NULL_DEFAULT
pengaturan, lakukan ini:
SELECT DATABASEPROPERTYEX('Music','IsAnsiNullDefault');
Hasil:
+--------------------+ | (No column name) | |--------------------| | 1 | +--------------------+