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

解説

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 オプションのうちの一つです。 他の SET オプションは ARITHABORT (オン)、 CONCAT_NULL_YIELDS_NULL (オン)、 NUMERIC_ROUNDABORT (オフ)です。 インデックス付きビュー、フィルタリングインデックス、計算された列のインデックスに関する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に設定します。 CURSOR_CLOSE_ON_COMMIT および IMPLICIT_TRANSACTIONS の OFF 設定は、ODBC データ ソースまたは ODBC 接続属性で、あるいは SQL Server に接続する前にアプリケーションに設定される OLE DB 接続プロパティで構成できます。 DB-Library アプリケーションからの接続に対しては、ANSI_DEFAULTS は既定で OFF に設定されています。

SET 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 ユーザーオプション(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)