SET ANSI_DEFAULTS (Transact-SQL)

適用於:SQL Server Azure SQL 受控執行個體 Microsoft Fabric 中 Microsoft Fabric倉儲中的Azure Synapse AnalyticsAnalytics Platform System (PDW)SQL 分析端點

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

Transact-SQL 語法慣例

Syntax

Azure Synapse Analytics、Microsoft Fabric 中的 SQL Server 無伺服器 SQL 集區語法

SET ANSI_DEFAULTS { ON | OFF }

Azure Synapse Analytics 和 Analytics Platform System (PDW) 的語法

SET ANSI_DEFAULTS ON

注意

若要檢視 SQL Server 2014 (12.x) 和舊版的 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 選項之一。 其他 SET 選項包括 ARITHABORT (ON)、CONCAT_NULL_YIELDS_NULL (ON) 和 NUMERIC_ROUNDABORT (OFF)。 如需有關具有索引檢視表、篩選索引和計算數據行索引之必要 SET 選項設定的詳細資訊,請參閱 使用 SET 語句時的考慮。

適用於 SQL Server 的 SQL Server Native Client ODBC 驅動程式和 SQL Server Native Client OLE DB 提供者在連線時,都會自動將 ANSI_DEFAULTS 設為 ON。 之後,驅動程式和提供者便將 CURSOR_CLOSE_ON_COMMIT 和 IMPLICIT_TRANSACTIONS 設為 OFF。 您可在 ODBC 資料來源、ODBC 連線屬性或 OLE DB 連線屬性中設定 CURSOR_CLOSE_ON_COMMITIMPLICIT_TRANSACTIONS 的 OFF 設定,再連線至 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)