Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tìm cài đặt ANSI_NULLS của cơ sở dữ liệu trong SQL Server (T-SQL)

SQL Server có ANSI_NULLS cài đặt xác định cách NULL các giá trị được đánh giá khi so sánh với một giá trị khác bằng các Dấu bằng (= ) và Không Bằng (<> ) toán tử so sánh.

Mặc dù đúng là bạn có thể thay đổi ANSI_NULLS cài đặt ở cấp phiên (sử dụng SET ANSI_NULLS ), mỗi cơ sở dữ liệu cũng có ANSI_NULLS của riêng nó cài đặt.

Bạn có thể kiểm tra cơ sở dữ liệu của mình để xem liệu ANSI_NULLS của nó cài đặt là ON hoặc OFF .

Để thực hiện việc này với T-SQL, bạn có thể sử dụng sys.databases chế độ xem danh mục hoặc DATABASEPROPERTYEX() chức năng.

sys.databases Xem

sys.databases dạng xem danh mục chứa nhiều thông tin về từng cơ sở dữ liệu trong phiên bản SQL Server của bạn.

Truy vấn sau trả về ANSI_NULLS cài đặt cho Music cơ sở dữ liệu:

SELECT is_ansi_nulls_on 
FROM sys.databases
WHERE name = 'Music';

Kết quả:

+--------------------+
| is_ansi_nulls_on   |
|--------------------|
| 1                  |
+--------------------+

Trong trường hợp này, ANSI_NULLS ON cho cơ sở dữ liệu này.

Chúng ta có thể OFF như thế này:

ALTER DATABASE Music
SET ANSI_NULLS OFF;

Bạn có thể loại bỏ WHERE khi sử dụng sys.databases xem danh mục để trả về dữ liệu cho tất cả các cơ sở dữ liệu. Như thế này:

SELECT 
    name,
    is_ansi_nulls_on 
FROM sys.databases
ORDER BY name ASC;

Chế độ xem này cũng có một cột được gọi là is_ansi_null_default_on , trả về ANSI_NULL_DEFAULT cài đặt cho cơ sở dữ liệu.

ANSI_NULL_DEFAULT cài đặt xác định giá trị mặc định, NULL hoặc NOT NULL , thuộc loại cột hoặc CLR do người dùng xác định mà khả năng vô hiệu không được xác định rõ ràng trong CREATE TABLE hoặc ALTER TABLE tuyên bố.

Chúng tôi có thể sửa đổi ví dụ trước để bao gồm cột này:

SELECT
    name,
    is_ansi_nulls_on,
    is_ansi_null_default_on
FROM sys.databases
ORDER BY name ASC;

DATABASEPROPERTYEX() Chức năng

Một cách khác để kiểm tra các cài đặt này là sử dụng DATABASEPROPERTYEX() chức năng.

Đây là cách kiểm tra ANSI_NULLS cài đặt cho Music DB:

SELECT DATABASEPROPERTYEX('Music','IsAnsiNullsEnabled');

Kết quả:

+--------------------+
| (No column name)   |
|--------------------|
| 0                  |
+--------------------+

Bây giờ là 0 cho OFF bởi vì tôi đặt nó thành OFF trong một ví dụ trước.

Để kiểm tra ANSI_NULL_DEFAULT cài đặt, thực hiện điều này:

SELECT DATABASEPROPERTYEX('Music','IsAnsiNullDefault');

Kết quả:

+--------------------+
| (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. 6 Hàm lấy Ngày, Tháng và Năm từ một Ngày trong SQL Server

  2. hiển thị nhiều bản ghi bằng cách sử dụng tập kết quả

  3. Có thể chọn dữ liệu máy chủ sql bằng cách sử dụng vị trí thứ tự cột không

  4. MAMP có nên trả về ::1 dưới dạng IP trên localhost không?

  5. Cách sử dụng cùng một lịch biểu cho nhiều công việc tác nhân máy chủ SQL (T-SQL)