SET ANSI_DEFAULTS (Transact-SQL)

適用対象:SQL ServerAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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_NULLS、、 ANSI_PADDINGANSI_WARNINGS、) QUOTED_IDENTIFIERを ON に設定する必要があります。 これらの既定値は、計算列、フィルター選択されたインデックス、およびインデックス付きビューでインデックスを作成および変更するときに、必要な値を割り当てる必要がある 7 つの Standard Edition T オプションの 1 つです。 その他の SET オプションは、ARITHABORT (ON)、CONCAT_NULL_YIELDS_NULL (ON)、および NUMERIC_ROUNDABORT (OFF) です。 インデックス付きビュー、フィルター選択されたインデックス、計算列のインデックスを含む必須の Standard Edition T オプション設定の詳細については、「Standard Edition T ステートメントを使用する場合の考慮事項」を参照してください

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)