SET ANSI_DEFAULTS (Transact-SQL)

適用于:SQL Server (所有支援的版本) Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)

控制一組共同指定某些 ISO 標準行為的SQL Server設定。

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

Syntax

Azure Synapse Analytics 中SQL Server和無伺服器 SQL 集區的語法

SET ANSI_DEFAULTS { ON | OFF }

Azure Synapse Analytics and Analytics Platform System (PDW) 語法

SET ANSI_DEFAULTS ON

注意

若要檢視 SQL Server 2014 與更早版本的 Transact-SQL 語法,請參閱舊版文件

備註

ANSI_DEFAULTS 是可啟用所有用戶端連線行為的伺服器端設定。 用戶端通常會要求對連線或工作階段初始化進行設定。 使用者不應該修改伺服器設定。
若要變更用戶端行為,使用者應使用用戶端特定方法,例如 SQL_COPT_SS_PRESERVE_CURSORS。 如需詳細資訊,請參閱 SQLSetConnectAttr

當啟用 (ON) 時,這個選項會啟用下列 ISO 設定:

SET ANSI_NULLS

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_NULL_DFLT_ON

SET IMPLICIT_TRANSACTIONS

SET ANSI_PADDING

SET QUOTED_IDENTIFIER

SET ANSI_WARNINGS

 

這些 ISO 標準 SET 選項共同定義了使用者、執行中的觸發程序或預存程序之工作階段持續期間的查詢處理環境。 不過,這些 SET 選項並未包括符合 ISO 標準所需要的所有選項。

當處理計算資料行索引和索引檢視表時,這些預設值其中的四個 (ANSI_NULLSANSI_PADDINGANSI_WARNINGSQUOTED_IDENTIFIER) 必須設為 ON。 這些預設值是在建立和變更計算資料行索引和索引檢視時,必須指派必要值的七個選項之中。 其他 SET 選項包括 ARITHABORT (ON)、CONCAT_NULL_YIELDS_NULL (ON) 和 NUMERIC_ROUNDABORT (OFF)。 如需有關含索引檢視表和計算資料行索引之必要 SET 選項設定的詳細資訊,請參閱SET 陳述式的使用考量

連接時,SQL Server Native Client ODBC 驅動程式和 SQL Server Native Client OLE DB Provider for SQL Server 會自動將ANSI_DEFAULTS設定為 ON。 之後,驅動程式和提供者便將 CURSOR_CLOSE_ON_COMMIT 和 IMPLICIT_TRANSACTIONS 設為 OFF。 和 IMPLICIT_TRANSACTIONS 的 OFF 設定 CURSOR_CLOSE_ON_COMMIT 可以在 ODBC 資料來源、ODBC 連接屬性或 OLE DB 連接屬性中設定,這些屬性是在連線到 SQL Server 之前在應用程式中設定。 就來自 DB-Library 應用程式的連線而言,ANSI_DEFAULTS 的預設值是 OFF。

當發出 SET ANSI_DEFAULTS 時,會在剖析階段設定 QUOTED_IDENTIFIER,而在執行階段則會設定下列選項:

SET ANSI_NULLS

SET ANSI_WARNINGS

SET ANSI_NULL_DFLT_ON

SET CURSOR_CLOSE_ON_COMMIT

SET ANSI_PADDING

SET IMPLICIT_TRANSACTIONS

權限

需要 public 角色的成員資格。

範例

下列範例會將 ANSI_DEFAULTS 設定為 ON,並使用 DBCC USEROPTIONS 陳述式來顯示受影響的設定。

-- SET ANSI_DEFAULTS ON.  
SET ANSI_DEFAULTS ON;  
GO  

-- Display the current settings.  
DBCC USEROPTIONS;  
GO 

-- SET ANSI_DEFAULTS OFF.  
SET ANSI_DEFAULTS OFF;  
GO  

另請參閱

DBCC USEROPTIONS (Transact-SQL)
SET 陳述式 (Transact-SQL)
SET ANSI_NULL_DFLT_ON (Transact-SQL)
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL)
SET IMPLICIT_TRANSACTIONS (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL)