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