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