Được rồi, theo quan điểm của nhà phát triển ứng dụng, đây là những gì các cài đặt này thực hiện:
QUOTED_IDENTIFIER
Cài đặt này kiểm soát cách dấu ngoặc kép ".."
được thông dịch bởi trình biên dịch SQL. Khi QUOTED_IDENTIFIER
BẬT thì dấu ngoặc kép được coi như dấu ngoặc ([...]
) và có thể được sử dụng để trích dẫn tên đối tượng SQL như tên bảng, tên cột, v.v. Khi nó TẮT (không được khuyến nghị), thì dấu ngoặc kép được coi như dấu nháy đơn ('..'
) và có thể được sử dụng để trích dẫn các chuỗi văn bản trong các lệnh SQL.
ANSI_NULLS
Cài đặt này kiểm soát những gì sẽ xảy ra khi bạn cố gắng sử dụng bất kỳ toán tử so sánh nào ngoài IS
trên NULL. Khi nó được BẬT, các phép so sánh này tuân theo tiêu chuẩn nói rằng so sánh với NULL luôn không thành công (vì nó không phải là một giá trị, đó là một Cờ) và trả về FALSE
. Khi cài đặt này TẮT (thực sự không được khuyến nghị) bạn có thể coi nó như một giá trị và sử dụng =
một cách thành công , <>
, v.v. trên đó và nhận lại ĐÚNG khi hết hạn.
Cách thích hợp để xử lý điều này là thay vào đó sử dụng IS
(ColumnValue IS NULL ..
).
CONCAT_NULL_YIELDS_NULL
Cài đặt này kiểm soát xem NULLs "Propogate" whn được sử dụng trong biểu thức chuỗi hay không. Khi BẬT cài đặt này, nó tuân theo tiêu chuẩn và biểu thức như 'some string' + NULL ..
luôn trả về NULL. Do đó, trong một loạt các nối chuỗi, một NULL có thể khiến toàn bộ biểu thức trả về NULL. Việc TẮT chức năng này (cũng không được khuyến nghị) sẽ khiến các NULL được coi như các chuỗi trống, vì vậy hãy 'some string' + NULL
chỉ đánh giá thành 'some string'
.
Cách thích hợp để xử lý điều này là với hàm COALESCE (hoặc ISNULL):'some string' + COALESCE(NULL, '') ..
.