Share via


@@OPTIONS (Transact-SQL)

傳回目前 SET 選項的相關資訊。

主題連結圖示 Transact-SQL 語法慣例

語法

@@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)

請參閱

參考

組態函數 (Transact-SQL)

sp_configure (Transact-SQL)

概念

設定 user options 伺服器組態選項