SET ANSI_DEFAULTS (Transact-SQL)

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

トピック リンク アイコンTransact-SQL 構文表記規則

構文

SET ANSI_DEFAULTS { ON | OFF }

説明

SET 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 オプションの中の 4 つのオプションです。その他の SET オプションは、ARITHABORT (ON)、CONCAT_NULL_YIELDS_NULL (ON)、および NUMERIC_ROUNDABORT (OFF) です。インデックス付きビューおよび計算列上のインデックスに必要な SET オプション設定の詳細については、「SET (Transact-SQL)」の「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 に設定します。SET CURSOR_CLOSE_ON_COMMIT と SET IMPLICIT_TRANSACTIONS を OFF にする設定は、ODBC データ ソース、ODBC 接続属性、OLE DB 接続プロパティのいずれかで構成できます。OLE DB 接続プロパティは、SQL Server に接続する前に、アプリケーションの内部で設定されます。DB-Library アプリケーションからの接続に対しては、SET ANSI_DEFAULTS は既定で OFF に設定されています。

SET ANSI_DEFAULTS を実行すると、SET 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 ロールのメンバシップが必要です。

次の例では、SET 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