SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
GO
是什么意思?
?
語法
SET QUOTED_IDENTIFIER { ON | OFF }
注釋
當(dāng) SET QUOTED_IDENTIFIER
為 ON 時(shí),標(biāo)識符可以由雙引號分隔,而文字必須由單引號分隔。當(dāng)
SET QUOTED_IDENTIFIER 為
OFF 時(shí),標(biāo)識符不可加引號,且必須遵守所有
Transact-SQL 標(biāo)識符規(guī)則。有關(guān)更多信息,請參見使用標(biāo)識符。文字可以由單引號或雙引號分隔。
當(dāng) SET QUOTED_IDENTIFIER
為 ON 時(shí),由雙引號分隔的所有字符串都被解釋為對象標(biāo)識符。因此,加引號的標(biāo)識符不必遵守
Transact-SQL 標(biāo)識符規(guī)則。它們可以是保留關(guān)鍵字,并且可以包含
Transact-SQL 標(biāo)識符中通常不允許的字符。不能使用雙引號分隔文字字符串表達(dá)式,而必須用單引號括住文字字符串。如果單引號
(') 是文字字符串的一部分,則可以由兩個(gè)單引號
('') 表示。當(dāng)對數(shù)據(jù)庫中的對象名使用保留關(guān)鍵字時(shí),SET QUOTED_IDENTIFIER
必須為 ON。
當(dāng) SET QUOTED_IDENTIFIER
為 OFF(默認(rèn)值)時(shí),表達(dá)式中的文字字符串可以由單引號或雙引號分隔。如果文字字符串由雙引號分隔,則可以在字符串中包含嵌入式單引號,如省略號。
當(dāng)在計(jì)算列或索引視圖上創(chuàng)建或操作索引時(shí),SET QUOTED_IDENTIFIER
必須為 ON。如果
SET QUOTED_IDENTIFIER 為
OFF,則計(jì)算列或索引視圖上帶索引的表上的
CREATE、UPDATE、INSERT
和 DELETE
語句將失敗。有關(guān)計(jì)算列上的索引視圖和索引所必需的 SET
選項(xiàng)設(shè)置的更多信息,請參見 SET
中的"使用
SET 語句時(shí)的注意事項(xiàng)"。
?
?
SET ANSI_NULLS ON是什么意思?
SQL-92 標(biāo)準(zhǔn)要求在對空值進(jìn)行等于 (=)
或不等于 (<>)
比較時(shí)取值為 FALSE。當(dāng)
SET ANSI_NULLS 為
ON 時(shí),即使
column_name 中包含空值,使用
WHERE column_name = NULL 的
SELECT 語句仍返回零行。即使
column_name 中包含非空值,使用
WHERE column_name <> NULL 的
SELECT 語句仍會返回零行。
當(dāng) SET ANSI_NULLS
為 OFF 時(shí),等于
(=) 和不等于
(<>) 比較運(yùn)算符不遵從
SQL-92 標(biāo)準(zhǔn)。使用
WHERE column_name = NULL 的
SELECT 語句返回
column_name 中包含空值的行。使用
WHERE column_name <> NULL 的
SELECT 語句返回列中包含非空值的行。此外,使用
WHERE column_name <> XYZ_value 的
SELECT 語句返回所有不為
XYZ_value 也不為
NULL 的行。