次の方法で共有


SET ANSI_DEFAULTS (Transact-SQL)

適用対象: SQL Server Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric のSQL 分析エンドポイント Microsoft Fabric のウェアハウス

一部の ISO 標準動作を集合的に指定する、SQL Server 設定のグループを制御します。

Transact-SQL 構文表記規則

構文

SQL Server、Azure Synapse Analytics のサーバーレス SQL プール、Microsoft Fabric の構文

SET ANSI_DEFAULTS { ON | OFF }

Azure Synapse Analytics および Analytics Platform System (PDW) の構文

SET ANSI_DEFAULTS ON

Note

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 標準に準拠するために必要なオプションがすべて含まれているわけではありません。

計算列、フィルター選択されたインデックス、およびインデックス付きビューでインデックスを処理する場合、これらの既定値のうち 4 つ (ANSI_NULLSANSI_PADDINGANSI_WARNINGS、および QUOTED_IDENTIFIER) を ON に設定する必要があります。 これらの既定値は、計算列、フィルター選択されたインデックス、およびインデックス付きビューのインデックスを作成および変更するときに、必要な値を割り当てる必要がある 7 つの SET オプションの 1 つです。 その他の SET オプションは、ARITHABORT (ON)、CONCAT_NULL_YIELDS_NULL (ON)、および NUMERIC_ROUNDABORT (OFF) です。 計算列のインデックス付きビュー、フィルター選択されたインデックス、およびインデックスで必要な SET オプション設定の詳細については、「 CONsiderations when you use the SET Statementsを参照してください。

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 に設定されます。 CURSOR_CLOSE_ON_COMMIT および IMPLICIT_TRANSACTIONS の OFF 設定は、ODBC データ ソースまたは ODBC 接続属性で、あるいは SQL Server に接続する前にアプリケーションに設定される OLE DB 接続プロパティで構成できます。 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)