印刷用ページ       送信     
クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
SQL Server
Microsoft SQL Server 2000
SDK ドキュメント
Transact-SQL リファレンス
SET

  低帯域幅での表示をオンにする
Transact-SQL リファレンス
SET

Transact-SQL プログラミング言語は、特定の情報を操作する現在のセッションを変更するためのいくつかの SET ステートメントを用意しています。

SET ステートメントは次のように分類されます。

カテゴリ 現在のセッションの設定を変更する対象
日付と時刻 日付と時刻の操作。
ロック Microsoft® SQL Server™ ロックの操作。
その他 SQL Server のその他の機能。
クエリの実行 クエリの実行と処理。
SQL-92 設定 SQL-92 既定の設定の使用。
統計 統計情報の表示。
トランザクション SQL Server トランザクションの操作。

日付時刻ステートメント

SET DATEFIRST

SET DATEFORMAT

ロック ステートメント

SET DEADLOCK_PRIORITY

SET LOCK_TIMEOUT

その他のステートメント

SET CONCAT_NULL_YIELDS_NULL

SET CURSOR_CLOSE_ON_COMMIT

SET DISABLE_DEF_CNST_CHK

SET FIPS_FLAGGER

SET IDENTITY_INSERT

SET LANGUAGE

SET OFFSETS

SET QUOTED_IDENTIFIER

クエリ実行ステートメント

SET ARITHABORT

SET ARITHIGNORE

SET FMTONLY

SET NOCOUNT

SET NOEXEC

SET NUMERIC_ROUNDABORT

SET PARSEONLY

SET QUERY_GOVERNOR_COST_LIMIT

SET ROWCOUNT

SET TEXTSIZE

SQL-92 設定ステートメント

SET ANSI_DEFAULTS

SET ANSI_NULL_DFLT_OFF

SET ANSI_NULL_DFLT_ON

SET ANSI_NULLS

SET ANSI_PADDING

SET ANSI_WARNINGS

統計ステートメント

SET FORCEPLAN

SET SHOWPLAN_ALL

SET SHOWPLAN_TEXT

SET STATISTICS IO

SET STATISTICS PROFILE

SET STATISTICS TIME

トランザクション ステートメント

SET IMPLICIT_TRANSACTIONS

SET REMOTE_PROC_TRANSACTIONS

SET TRANSACTION ISOLATION LEVEL

SET XACT_ABORT

SET ステートメントの使用に関する留意事項
  • SET FIPS_FLAGGER、SET OFFSETS、SET PARSEONLY、および SET QUOTED_IDENTIFIER を除き、ほかのすべての SET ステートメントは実行時に設定されます。SET FIPS_FLAGGER、SET OFFSETS、SET PARSEONLY、および SET QUOTED_IDENTIFIER は解析時に設定されます。

  • SET ステートメントがストアド プロシージャで設定された場合は、SET オプションの値は、制御がストアド プロシージャから返された後、元に戻されます。したがって、動的 SQL に指定されている SET ステートメントは、動的 SQL ステートメントの後にあるステートメントに影響しません。

  • ストアド プロシージャは、SET ANSI_NULLS と SET QUOTED_IDENTIFIERS を除き、実行時に指定された SET 設定を使用して実行されます。SET ANSI_NULLS または SET QUOTED_IDENTIFIER が指定されたストアド プロシージャの場合は、ストアド プロシージャの作成時に指定された設定を使用します。ストアド プロシージャの内部で使用した場合、SET 設定は無視されます。

  • sp_configureuser options 設定を使用すると、サーバー単位の設定が可能であり、この設定は複数のデータベースにわたって機能します。また、この設定は明示的な SET ステートメントと同じように動作しますが、ログイン時に発生する点が異なります。

  • sp_dboption によるデータベース設定は、データベース レベルでのみ有効であり、明示的に設定されている場合にだけ有効になります。データベース設定は、sp_configure を使って設定したサーバーのオプション設定を上書きします。

  • ON と OFF の設定ができる SET ステートメントの場合、複数の SET オプションに対して ON または OFF 設定を指定できます。次に例を示します。
    SET QUOTED_IDENTIFIER, ANSI_NULLS ON
    

    この場合、QUOTED_IDENTIFIER と ANSI_NULLS が両方とも ON に設定されます。

  • SET ステートメントによる設定は、sp_dboption を使用して設定されるデータベース オプションの設定より優先します。さらに、sp_configure user options 設定を前回使用したことで有効になった値、またはすべての ODBC および OLE/DB 接続に適用される値に基づき、ユーザーがデータベースに接続するときに、一部の接続設定は自動的に ON に設定されます。

  • たとえば SET ANSI_DEFAULTS などのように、グローバルまたはショートカット SET ステートメントで多くの設定を行う場合、ショートカット SET ステートメントを実行すると、そのショートカット SET ステートメントの影響を受けるすべてのオプションの以前の設定はリセットされます。ショートカット SET ステートメントを実行した後、そのステートメントの影響を受けた SET オプションを個別に明示的に設定した場合、個別の SET ステートメントは対応するショートカット設定より優先します。

  • バッチを使用する場合、データベース コンテキストは、USE ステートメントで設定されたバッチによって決まります。ストアド プロシージャの外部で実行され、バッチの内部にある追加クエリやほかのすべてのステートメントは、USE ステートメントで設定されるデータベースおよび接続のオプション設定を継承します。

  • ストアド プロシージャがバッチまたはほかのストアド プロシージャから実行される場合は、そのストアド プロシージャが格納されているデータベースで現在設定されているオプション値を使用して実行されます。たとえば、ストアド プロシージャ db1.dbo.sp1 がストアド プロシージャ db2.dbo.sp2 を呼び出す場合、ストアド プロシージャ sp1 は、データベース db1 の現在の互換性レベル設定で実行され、ストアド プロシージャ sp2 は、データベース db2 の現在の互換性レベルで実行されます。

  • Transact-SQL ステートメントが複数のデータベースに格納されているオブジェクトを参照する場合は、現在のデータベース コンテキストと現在の接続コンテキスト、つまり、バッチ内にある場合は USE ステートメントで定義されたデータベース、ストアド プロシージャ内にある場合はストアド プロシージャが格納されているデータベースがそのステートメントに適用されます。

  • 計算列またはインデックス付きビューにおいてインデックスを作成および操作する場合、SET オプションの ARITHABORT、CONCAT_NULL_YIELDS_NULL、QUOTED_IDENTIFIER、ANSI_NULLS、ANSI_PADDING、および ANSI_WARNINGS を ON に設定する必要があります。NUMERIC_ROUNDABORT オプションは OFF に設定する必要があります。

    これらのオプションのいずれかが適切な値に設定されていない場合、インデックス付きビュー、または計算列にインデックスが設定されているテーブルにおいて実行される INSERT、UPDATE、および DELETE の処理は失敗します。SQL Server では、適切に設定されていないすべてのオプションを一覧したエラーを出力します。また、これらのテーブルまたはインデックス付きビューにおける SELECT ステートメントは、計算列またはビューにインデックスが存在しないものとして処理されます。

© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker