1. 程式人生 > >SQL中單引號與雙引號的區別

SQL中單引號與雙引號的區別

當 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 (Transact-SQL) 中的“使用 SET 語句時的注意事項”。

在 進行連線時,SQL 本機客戶端 ODBC 驅動程式和 SQL Server 的 SQL Native Client OLE DB Provider 自動將 QUOTED_IDENTIFIER 設定為 ON。這可以在 ODBC 資料來源、ODBC 連線特性或 OLE DB 連線屬性中進行配置。對來自 DB-Library 應用程式的連線,SET QUOTED_IDENTIFIER 預設設定為 OFF。

建立表時,即使此時將 QUOTED IDENTIFIER 選項設定為 OFF,該選項在表的元資料中仍始終儲存為 ON。

建立儲存過程時,將捕獲 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 設定,並用於該儲存過程的後續呼叫。

在儲存過程內執行 SET QUOTED_IDENTIFIER 時,其設定不更改。

當 SET ANSI_DEFAULTS 為 ON時,將啟用 SET QUOTED_IDENTIFIER。

SET QUOTED_IDENTIFIER 還與 ALTER DATABASE 的 QUOTED_IDENTIFER 設定相對應。有關資料庫設定的詳細資訊,請參閱 ALTER DATABASE (Transact-SQL)設定資料庫選項

SET QUOTED_IDENTIFIER 是在分析時進行設定的。在分析時進行設定意味著:SET 語句只要出現在批處理或儲存過程中即生效,與程式碼執行實際上是否到達該點無關;並且 SET 語句在任何語句執行之前生效。