@@OPTIONS (Transact-SQL)
傳回目前 SET 選項的相關資訊。
語法
@@OPTIONS
傳回類型
integer
備註
這些選項可能來自於使用 SET 命令或來自 sp_configure user options 值。 使用 SET 命令設定的工作階段值會覆寫 sp_configure 選項。 許多工具 (例如 Management Studio 會自動設定 SET 選項。 每位使用者都有一個代表組態的 @@OPTIONS 函數。
您可以利用 SET 陳述式,針對特定使用者工作階段變更語言和查詢處理選項。 @@OPTIONS 只能偵測到設為 ON 或 OFF 的選項。
@@OPTIONS 函數會傳回選項的點陣圖,並轉換為以 10 為底數的 (十進位) 整數。 位元設定會儲存在<設定 user options 伺服器組態選項>主題中所述的位置。
若要解碼 @@OPTIONS 值,請將 @@OPTIONS 所傳回的整數轉換為二進位,然後查閱上表中的值。 例如,若 SELECT @@OPTIONS; 傳回值 5496,請使用 Windows 程式設計人員計算器 (calc.exe) 將十進位 5496 轉換為二進位。 結果為 1010101111000。 最左邊的字元 (二進位 1、2 和 4) 為 0,表示 IMPLICIT_TRANSACTIONS 和 CURSOR_CLOSE_ON_COMMIT 為 OFF。 下一個項目 (位於 1000 位置的 ANSI_WARNINGS) 為 ON。 繼續處理點陣圖,直到產生選項清單的結果。 當最右邊的選項為 0 時,會由類型轉換截斷。 點陣圖 1010101111000 實際為表示 15 個選項的 001010101111000。
範例
A.變更如何影響行為的示範
下列範例透過 CONCAT_NULL_YIELDS_NULL 選項的兩個不同設定,示範串連行為的差異。
SELECT @@OPTIONS AS OriginalOptionsValue;
SET CONCAT_NULL_YIELDS_NULL OFF;
SELECT 'abc' + NULL AS ResultWhen_OFF, @@OPTIONS AS OptionsValueWhen_OFF;
SET CONCAT_NULL_YIELDS_NULL ON;
SELECT 'abc' + NULL AS ResultWhen_ON, @@OPTIONS AS OptionsValueWhen_ON;
B.測試用戶端 NOCOUNT 設定
下列範例會設定 NOCOUNT ON,再測試 @@OPTIONS 值。 NOCOUNT ON 選項會防止針對工作階段中的每個陳述式,將受影響之資料列數的相關訊息傳回發出要求的用戶端。 @@OPTIONS 值設為 512 (0x0200)。 這代表 NOCOUNT 選項。 這個範例會測試是否啟用了用戶端的 NOCOUNT 選項。 例如,它可以協助您追蹤用戶端的效能差異。
SET NOCOUNT ON
IF @@OPTIONS & 512 > 0
RAISERROR ('Current user has SET NOCOUNT turned on.', 1, 1)