Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Menemukan Pengaturan ANSI_NULLS Database di SQL Server (T-SQL)

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                  |
+--------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Toko Kueri SQL Server

  2. Perbaiki "Kesalahan overflow aritmatika mengonversi ekspresi ke tipe data int" di SQL Server

  3. 3 Cara Menghapus Baris Duplikat di SQL Server sambil Mengabaikan Kunci Utama

  4. Konversi 'datetime2' menjadi 'datetime' di SQL Server (Contoh T-SQL)

  5. Ambil data dari prosedur tersimpan yang memiliki beberapa set hasil