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