當前位置:編程學習大全網 - 圖片素材 - sql中的存儲過程set是什麽意思

sql中的存儲過程set是什麽意思

由雙引號分隔的標識符可以是 Transact-SQL 保留關鍵字,或者可以包含 Transact-SQL 標識符語法規則通常不允許的字符。語法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 語句時的註意事項。在進行連接時,SQL Server ODBC 驅動程序和用於 SQL Server 的 Microsoft OLE DB 提供程序自動將 QUOTED_IDENTIFIER 設置為 ON。這可以在 ODBC 數據源、ODBC 連接特性或 OLE DB 連接屬性中進行配置。對來自 DB-Library 應用程序的連接,SET QUOTED_IDENTIFIER 設置默認為 OFF。當創建存儲過程時,將捕獲 SET QUOTED_IDENTIFIER 和 SET ANSI_NULLS 設置,用於該存儲過程的後續調用。當在存儲過程內執行 SET QUOTED_IDENTIFIER 時,其設置不更改。當 SET ANSI_DEFAULTS 為 ON時,將啟用 SET QUOTED_IDENTIFIER。SET QUOTED_IDENTIFIER 還與 sp_dboption 的 quoted identifier 設置相對應。如果 SET QUOTED_IDENTIFIER 為 OFF,則 SQL Server 使用 sp_dboption 的 quoted identifier 設置。有關數據庫設置的更多信息,請參見 sp_dboption 和設置數據庫選項。SET QUOTED_IDENTIFIER 是在分析時進行設置的。在分析時進行設置意味著:SET 語句只要出現在批處理或存儲過程中即生效,與代碼執行實際上是否到達該點無關;並且 SET 語句在任何語句執行之前生效。比較空值時必須小心。比較行為取決於選項 SET ANSI_NULLS 的設置。當 SET ANSI_NULLS 為 ON 時,如果比較中有壹個或多個表達式為 NULL,則既不輸出 TRUE 也不輸出 FALSE,而是輸出 UNKNOWN。這是因為,未知值不能與其它任何值進行邏輯比較。這種情況發生在壹個表達式與 NULL 單詞進行比較,或者兩個表達式相比,而其中壹個表達式取值為 NULL 時。例如,當 ANSI_NULLS 為 ON 時,以下比較總是輸出 UNKNOWN:ytd_sales NULL只要變量包含 NULL 值,下列比較也輸出 UNKNOWN:ytd_sales @MyVariable使用 IS NULL 或 IS NOT NULL 子句測試 NULL 值。這將增加 WHERE 子句的復雜性。例如,表 Northwind Customers 中的 Region 列允許空值。如果使用 SELECT 語句不僅測試其它值還測試空值,則必須包括 IS NULL 子句:SELECT CustomerID, CompanyName, RegionFROM Northwind.dbo.CustomersWHERE Region IN ('WA', 'SP', 'BC')OR Region IS NULLTransact-SQL 支持在與空值進行比較時,允許比較運算符返回 TRUE 或 FALSE。通過設置 ANSI_NULLS OFF 可將該選項激活。當 ANSI_NULLS 為 OFF 時,如果 ColumnA 包含空值,則比較操作 ColumnA = NULL 返回 TRUE;如果 ColumnA 除包含 NULL 外還包含某些值,則比較操作返回 FALSE。此外,兩個都取空值的表達式的比較也輸出 TRUE。當 ANSI_NULLS 設置為 OFF 時,SELECT 語句將返回 Customer 表中所有 Region 為空值的行:SELECT CustomerID, CompanyName, RegionFROM Northwind.dbo.CustomersWHERE Region = NULL涉及 NULL 的計算均取值為 NULL,這是因為只要有壹個因子為未知,結果肯定是 UNKNOWN。例如,如果 column1 為 NULL,則 column1 + 1 取值為 NULL。

  • 上一篇:派遣女王篠原涼子強勢回歸!壹窺46歲逆齡完勝少女的4個秘訣
  • 下一篇:Midjourney充氣
  • copyright 2024編程學習大全網