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 設定のグループを制御します。
構文
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_PADDING
、 ANSI_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)