ALTER DATABASE の SET オプション (Transact-SQL)ALTER DATABASE SET options (Transact-SQL)

Microsoft SQL ServerSQL ServerAzure SQL データベースAzure SQL DatabaseSQL データ ウェアハウスSQL Data Warehouse でデータベース オプションを設定します。Sets database options in Microsoft SQL ServerSQL Server, Azure SQL データベースAzure SQL Database, and SQL データ ウェアハウスSQL Data Warehouse. ALTER DATABASE の他のオプションについては、「ALTER DATABASE」をご覧ください。For other ALTER DATABASE options, see ALTER DATABASE.

お使いの特定バージョンの SQL の構文、引数、注釈、権限、例を表示するには、以下のいずれかのタブを選択します。Select one of the following tabs for the syntax, arguments, remarks, permissions, and examples for a particular SQL version that you're working with.

構文表記規則の詳細については、「Transact-SQL 構文表記規則」を参照してください。For more information about the syntax conventions, see Transact-SQL syntax conventions.

製品を選択するSelect a product

次の行から関心がある製品名を選択してみてください。In the following row, select whichever product name you're interested in. この Web ページでは、選択した製品に合わせて、異なるコンテンツが表示されます。Doing that displays different content here on this webpage, appropriate for whichever product you select.

* SQL Server *  * SQL Server *   SQL Database
単一データベース/エラスティック プール
SQL Database
single database/elastic pool
SQL Database
マネージド インスタンス
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse

 

SQL ServerSQL Server

データベース ミラーリング、Always On 可用性グループAlways On availability groups、および互換性レベルは SET オプションですが、長くなるため別の記事で説明します。Database mirroring, Always On 可用性グループAlways On availability groups, and compatibility levels are SET options but are described in separate articles because of their length. 詳しくは、「ALTER DATABASE データベース ミラーリング」、「ALTER DATABASE SET HADR」、「ALTER DATABASE 互換性レベル」をご覧ください。For more information, see ALTER DATABASE Database Mirroring, ALTER DATABASE SET HADR, and ALTER DATABASE compatibility level.

データベース スコープ構成は、複数のデータベース構成を個々のデータベース レベルで設定するために使用されます。Database scoped configurations are used to set several database configurations at the individual database level. 詳細については、「ALTER DATABASE SCOPED CONFIGURATION」を参照してください。For more information, see ALTER DATABASE SCOPED CONFIGURATION.

注意

多くのデータベース設定オプションは、SET ステートメントを使用して現在のセッション用に構成できます。これらは多くの場合、接続するアプリケーションによって構成されます。Many database set options can be configured for the current session by using SET statements and are often configured by applications when they connect. セッション レベルの SET オプションは、ALTER DATABASE SET の値をオーバーライドします。Session-level set options override the ALTER DATABASE SET values. 次のセクションで説明されているデータベース オプションは、セッション用に設定できる値であり、他の SET オプションの値は明示的に指定されていません。The database options described in the following sections are values that you can set for sessions that don't explicitly provide other set option values.

構文Syntax

ALTER DATABASE { database_name | CURRENT }
SET
{
    <option_spec> [ ,...n ] [ WITH <termination> ]
}

<option_spec> ::=
{
    <acceleratred_database_recovery>
  | <auto_option>
  | <automatic_tuning_option>
  | <change_tracking_option>
  | <containment_option>
  | <cursor_option>
  | <database_mirroring_option>
  | <date_correlation_optimization_option>
  | <db_encryption_option>
  | <db_state_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <external_access_option>
  | FILESTREAM ( <FILESTREAM_option> )
  | <HADR_options>
  | <mixed_page_allocation_option>
  | <parameterization_option>
  | <query_store_options>
  | <recovery_option>
  | <remote_data_archive_option>
  | <service_broker_option>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;

<accelerated_database_recovery> ::=
{
ACCELERATED_DATABASE_RECOVERY = {ON | OFF}
[(PERSISTENT_VERSION_STORE_FILEGROUP = { filegroup name }) ];
}

<auto_option> ::=
{
    AUTO_CLOSE { ON | OFF }
  | AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
  AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { ON | OFF } )
}

<change_tracking_option> ::=
{
  CHANGE_TRACKING
   {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
   }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<containment_option> ::=
   CONTAINMENT = { NONE | PARTIAL }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
  | CURSOR_DEFAULT { LOCAL | GLOBAL }
}

<database_mirroring_option>
  ALTER DATABASE Database Mirroring

<date_correlation_optimization_option> ::=
    DATE_CORRELATION_OPTIMIZATION { ON | OFF }

<db_encryption_option> ::=
    ENCRYPTION { ON | OFF | SUSPEND | RESUME }

<db_state_option> ::=
    { ONLINE | OFFLINE | EMERGENCY }

<db_update_option> ::=
    { READ_ONLY | READ_WRITE }

<db_user_access_option> ::=
    { SINGLE_USER | RESTRICTED_USER | MULTI_USER }

<delayed_durability_option> ::=
    DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<external_access_option> ::=
{
    DB_CHAINING { ON | OFF }
  | TRUSTWORTHY { ON | OFF }
  | DEFAULT_FULLTEXT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | DEFAULT_LANGUAGE = { <lcid> | <language name> | <language alias> }
  | NESTED_TRIGGERS = { OFF | ON }
  | TRANSFORM_NOISE_WORDS = { OFF | ON }
  | TWO_DIGIT_YEAR_CUTOFF = { 1753, ..., 2049, ..., 9999 }
}
<FILESTREAM_option> ::=
{
    NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL
  | DIRECTORY_NAME = <directory_name>
}
<HADR_options> ::=
    ALTER DATABASE SET HADR

<mixed_page_allocation_option> ::=
    MIXED_PAGE_ALLOCATION { OFF | ON }

<parameterization_option> ::=
    PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
    QUERY_STORE
    {
 = OFF
        | = ON [ ( <query_store_option_list> [,...n] ) ]
        | ( < query_store_option_list> [,...n] )
        | CLEAR [ ALL ]
    }
}

<query_store_option_list> ::=
{
      OPERATION_MODE = { READ_WRITE | READ_ONLY }
    | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
    | DATA_FLUSH_INTERVAL_SECONDS = number
    | MAX_STORAGE_SIZE_MB = number
    | INTERVAL_LENGTH_MINUTES = number
    | SIZE_BASED_CLEANUP_MODE = { AUTO | OFF }
    | QUERY_CAPTURE_MODE = { ALL | AUTO | CUSTOM | NONE }
    | MAX_PLANS_PER_QUERY = number
    | WAIT_STATS_CAPTURE_MODE = { ON | OFF }
    | QUERY_CAPTURE_POLICY = ( <query_capture_policy_option_list> [,...n] )
}

<query_capture_policy_option_list> :: =
{
    STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
    | EXECUTION_COUNT = number
    | TOTAL_COMPILE_CPU_TIME_MS = number
    | TOTAL_EXECUTION_CPU_TIME_MS = number
}

<recovery_option> ::=
{
    RECOVERY { FULL | BULK_LOGGED | SIMPLE }
  | TORN_PAGE_DETECTION { ON | OFF }
  | PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
}

<remote_data_archive_option> ::=
{
    REMOTE_DATA_ARCHIVE =
    {
        ON ( SERVER = <server_name> ,
{CREDENTIAL = <db_scoped_credential_name>
   | FEDERATED_SERVICE_ACCOUNT = ON | OFF
}
      )
      | OFF
    }
}

<service_broker_option> ::=
{
    ENABLE_BROKER
  | DISABLE_BROKER
  | NEW_BROKER
  | ERROR_BROKER_CONVERSATIONS  
  | HONOR_BROKER_PRIORITY { ON | OFF}
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT {ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT = {ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<target_recovery_time_option> ::=
    TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }

<termination>::=
{
    ROLLBACK AFTER number [ SECONDS ]
  | ROLLBACK IMMEDIATE
  | NO_WAIT
}
<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }

引数Arguments

database_name database_name
変更するデータベースの名前。The name of the database to be modified.

CURRENTCURRENT
適用対象: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

現在のデータベースでアクションが実行されます。Runs the action in the current database. CURRENT は、すべてのコンテキスト内のすべてのオプションでサポートされるわけではありません。CURRENT isn't supported for all options in all contexts. CURRENT でエラーが発生した場合は、データベース名を指定してください。If CURRENT fails, provide the database name.

<accelerated_database_recovery> ::= <accelerated_database_recovery> ::=
適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降)Applies to: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x))

データベースごとに高速データベース復旧 (ADR) を有効にする。Enables accelerated database recovery (ADR) per-database. SQL Server 2019 (15.x)SQL Server 2019 (15.x) では、ADR は既定で OFF に設定されています。ADR is set to OFF by default in SQL Server 2019 (15.x)SQL Server 2019 (15.x). この構文を使用すると、永続的なバージョン ストア (PVS) データの特定のファイル グループを指定できます。By using this syntax, you have the option to designate a specific file group for the Persistent Version Store (PVS) data. ファイル グループが指定されていない場合、PVS はプライマリ ファイル グループに格納されます。If no file group is specified, the PVS will be stored in the PRIMARY file group. 例と詳細については、高速データベース復旧に関するページを参照してください。For examples and more information, see Accelerated database recovery.

<auto_option> ::=<auto_option> ::=

自動オプションを制御します。Controls automatic options.

AUTO_CLOSE { ON | OFF }AUTO_CLOSE { ON | OFF }
ONON
データベースが正常にシャットダウンされ、最後のユーザーが終了した後、データベースのリソースが解放されます。The database is shut down cleanly and its resources are freed after the last user exits.

ユーザーが再びそのデータベースを使用しようとすると、そのデータベースが自動的に再度開かれます。The database automatically reopens when a user tries to use the database again. たとえば、ユーザーが USE database_name ステートメントを発行したときに、再度開くというこの動作が発生します。For example, this reopen behavior occurs when a user issues a USE database_name statement. AUTO_CLOSE を ON に設定すると、データベースを正常にシャットダウンすることができます。The database may shut down cleanly with AUTO_CLOSE set to ON. その場合、ユーザーが次に データベース エンジンDatabase Engine を再起動するときにデータベースを使おうとするまで、データベースは再び開かれません。If so, the database doesn't reopen until a user tries to use the database the next time the データベース エンジンDatabase Engine restarts.

OFFOFF
最後のユーザーが終了した後も、データベースは開いたままになります。The database remains open after the last user exits.

AUTO_CLOSE オプションを使用すると、データベース ファイルを通常のファイルとして管理できるため、デスクトップ データベースには便利なオプションです。The AUTO_CLOSE option is useful for desktop databases because it allows for database files to be managed as regular files. 普通のファイルと同じように、移動、コピーによるバックアップ作成、他のユーザーへの電子メール送信が可能です。They can be moved, copied to make backups, or even emailed to other users. AUTO_CLOSE は非同期プロセスであるため、データベースを開いたり閉じたりする操作を繰り返しても、パフォーマンスは低下しません。The AUTO_CLOSE process is asynchronous; repeatedly opening and closing the database doesn't reduce performance.

注意

AUTO_CLOSE オプションは、包含データベースまたは SQL DatabaseSQL Database では使用できません。The AUTO_CLOSE option isn't available in a contained database or on SQL DatabaseSQL Database. sys.databases カタログ ビューの is_auto_close_on 列または DATABASEPROPERTYEX 関数の IsAutoClose プロパティを調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_close_on column in the sys.databases catalog view or the IsAutoClose property of the DATABASEPROPERTYEX function.

AUTO_CLOSE が ON に設定されている場合、データベースからデータを取得できないため、sys.databases カタログ ビューの一部の列と DATABASEPROPERTYEX 関数は NULL を返します。When AUTO_CLOSE is set to ON, some columns in the sys.databases catalog view and the DATABASEPROPERTYEX function will return NULL because the database is unavailable to retrieve the data. この問題を解決するには、USE ステートメントを実行してデータベースを開きます。To resolve this issue, run a USE statement to open the database.

データベースをミラー化するには、AUTO_CLOSE を OFF に設定する必要があります。Database mirroring requires AUTO_CLOSE OFF.

データベースを AUTOCLOSE = ON に設定すると、データベースの自動シャットダウンを開始する操作によって、SQL ServerSQL Server のインスタンスのプラン キャッシュが消去されます。When the database is set to AUTOCLOSE = ON, an operation that initiates an automatic database shutdown clears the plan cache for the instance of SQL ServerSQL Server. プラン キャッシュが消去されると、後続のすべての実行プランが再コンパイルされ、場合によっては、クエリ パフォーマンスが一時的に急激に低下します。Clearing the plan cache causes a recompilation of all subsequent execution plans and can cause a sudden, temporary decrease in query performance. SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 2 以降では、プラン キャッシュ内のキャッシュストアが消去されるたびに、"SQL ServerSQL Server は、一部のデータベース メンテナンス操作または再構成操作により、'%s' キャッシュストア (プラン キャッシュの一部) のキャッシュストア フラッシュを %d 個検出しました。" という情報メッセージが SQL ServerSQL Server エラー ログに記録されます。In SQL Server 2005 (9.x)SQL Server 2005 (9.x) Service Pack 2 and later, for each cleared cache store in the plan cache, the SQL ServerSQL Server error log contains the following informational message: " SQL ServerSQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations." このメッセージは、5 分以内にキャッシュがフラッシュされる限り、5 分間隔でログに記録されます。This message is logged every five minutes as long as the cache is flushed within that time interval.

AUTO_CREATE_STATISTICS { ON | OFF }AUTO_CREATE_STATISTICS { ON | OFF }
ONON
クエリ プランを改善してクエリのパフォーマンスを向上させるために、クエリ オプティマイザーが必要に応じてクエリ述語内の列に対して 1 列ずつ統計を作成します。Query Optimizer creates statistics on single columns in query predicates, as necessary, to improve query plans and query performance. これらの 1 列ずつの統計は、クエリ オプティマイザーがクエリをコンパイルする場合に作成されます。These single-column statistics are created when Query Optimizer compiles queries. 1 列ずつの統計は、まだ既存の統計オブジェクトの最初の列になっていない列についてのみ作成されます。The single-column statistics are created only on columns that aren't already the first column of an existing statistics object.

既定の設定は ON です。The default setting is ON. ほとんどのデータベースで既定の設定を使用することをお勧めします。We recommend that you use the default setting for most databases.

OFFOFF
クエリ オプティマイザーがクエリをコンパイルするときにクエリ述語内の列の 1 列ずつの統計が作成されません。Query Optimizer doesn't create statistics on single columns in query predicates when it's compiling queries. このオプションを OFF に設定すると、最適ではないクエリ プランが作成されて、クエリのパフォーマンスが低下することがあります。Setting this option to OFF can cause suboptimal query plans and degraded query performance.

sys.databases カタログ ビューの is_auto_create_stats_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_create_stats_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoCreateStatistics プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoCreateStatistics property of the DATABASEPROPERTYEX function.

詳細については、「統計」の「データベース全体の統計オプションの使用」セクションを参照してください。For more information, see the section "Using the Database-wide statistics options" in Statistics.

INCREMENTAL = ON | OFF INCREMENTAL = ON | OFF
適用対象: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) から SQL Server 2017SQL Server 2017) と Azure SQL データベースAzure SQL DatabaseApplies to: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017) and Azure SQL データベースAzure SQL Database

AUTO_CREATE_STATISTICS を ON に設定し、INCREMENTAL を ON に設定します。Set AUTO_CREATE_STATISTICS to ON, and set INCREMENTAL to ON. これにより、増分統計がサポートされている場合は常に、自動的に作成された統計情報が増分として設定されます。This sets automatically created stats as incremental whenever incremental stats are supported. 既定値は OFF です。The default value is OFF. 詳しくは、「CREATE STATISTICS」をご覧ください。For more information, see CREATE STATISTICS.

AUTO_SHRINK { ON | OFF } ONAUTO_SHRINK { ON | OFF } ON
データベース ファイルを定期的な圧縮処理の対象とします。The database files are candidates for periodic shrinking.

データ ファイルとログ ファイルの両方を、自動的に圧縮できます。Both data files and log files can be automatically shrunk. AUTO_SHRINK では、データベースを単純復旧モデルに設定している場合、またはログをバックアップしている場合にのみ、トランザクション ログのサイズが圧縮されます。AUTO_SHRINK reduces the size of the transaction log only if you set the database to SIMPLE recovery model or if you back up the log. AUTO_SHRINK を OFF に設定すると、未使用領域の定期チェックの際、データベース ファイルは自動的に圧縮されません。When you set AUTO_SHRINK to OFF, the database files aren't automatically shrunk during periodic checks for unused space.

AUTO_SHRINK オプションを使用すると、ファイル領域の 25% を超える領域が未使用の場合にファイルが圧縮されます。The AUTO_SHRINK option shrinks files when more than 25 percent of the file contains unused space. ファイルは次の 2 つのサイズのいずれかに圧縮されます (どちらか大きい方)。It shrinks the file to one of two sizes (whichever is larger):

  • ファイルの 25% が未使用領域であるサイズThe size at which 25 percent of the file is unused space
  • ファイルが作成されたときのサイズThe size of the file when it was created

読み取り専用データベースは圧縮できません。You can't shrink a read-only database.

OFFOFF
データベース ファイルは、未使用領域の定期的なチェックの際に、自動的に圧縮されません。The database files are not automatically shrunk during periodic checks for unused space.

sys.databases カタログ ビューの is_auto_shrink_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_shrink_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoShrink プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoShrink property of the DATABASEPROPERTYEX function.

注意

AUTO_SHRINK オプションは、包含データベースでは使用できません。The AUTO_SHRINK option isn't available in a Contained Database.

AUTO_UPDATE_STATISTICS { ON | OFF }AUTO_UPDATE_STATISTICS { ON | OFF }
ONON
クエリで使用される場合、および統計が古くなっている可能性がある場合に、クエリ オプティマイザーによって更新されるように指定します。Specifies that Query Optimizer updates statistics when they're used by a query and when they might be out-of-date. 挿入、更新、削除、またはマージの各操作によってテーブルまたはインデックス付きビューのデータの分布が変わると、統計は古くなったと判断されます。Statistics become out-of-date after insert, update, delete, or merge operations change the data distribution in the table or indexed view. クエリ オプティマイザーでは、統計が前回更新されてから発生したデータ変更の数をカウントし、その変更の数をしきい値と比較することで、統計が古くなっている可能性がないかを判断します。Query Optimizer determines when statistics might be out-of-date by counting the number of data modifications since the last statistics update and comparing the number of modifications to a threshold. このしきい値は、テーブルまたはインデックス付きビューの行数に基づいて決められます。The threshold is based on the number of rows in the table or indexed view.

クエリ オプティマイザーによる古い統計の確認は、クエリをコンパイルする前と、キャッシュされたクエリ プランを実行する前に行われます。Query Optimizer checks for out-of-date statistics before it compiles a query and runs a cached query plan. クエリ オプティマイザーでは、古くなっている可能性がある統計を判断するため、クエリ述語内の列、テーブル、インデックス付きビューが使用されます。Query Optimizer uses the columns, tables, and indexed views in the query predicate to determine which statistics might be out-of-date. この情報は、クエリがコンパイルされる前にクエリ オプティマイザーによって判断されます。Query Optimizer determines this information before it compiles a query. キャッシュされたクエリ プランを実行する前は、データベース エンジンDatabase Engine で、クエリ プランが最新の統計を参照しているかどうかが確認されます。Before running a cached query plan, the データベース エンジンDatabase Engine verifies that the query plan references up-to-date statistics.

AUTO_UPDATE_STATISTICS オプションは、インデックスに対して作成された統計、クエリ述語内の列に対して 1 列ずつ作成された統計、および CREATE STATISTICS ステートメントを使用して作成された統計に適用されます。The AUTO_UPDATE_STATISTICS option applies to statistics created for indexes, single-columns in query predicates, and statistics that are created by using the CREATE STATISTICS statement. また、フィルター選択された統計情報にも適用されます。This option also applies to filtered statistics.

既定値は ON です。The default is ON. ほとんどのデータベースで既定の設定を使用することをお勧めします。We recommend that you use the default setting for most databases.

統計を同期的に更新するか非同期的に更新するかを指定するには、AUTO_UPDATE_STATISTICS_ASYNC オプションを使用します。Use the AUTO_UPDATE_STATISTICS_ASYNC option to specify whether the statistics are updated synchronously or asynchronously.

OFFOFF
統計がクエリで使用されるときに、クエリ オプティマイザーによって統計が更新されないことを指定します。Specifies that Query Optimizer doesn't update statistics when they're used by a query. また、統計が古くなっている可能性がある場合は、クエリオプティマイザーによって更新されません。Query Optimizer also doesn't update statistics when they might be out-of-date. このオプションを OFF に設定すると、最適ではないクエリ プランが作成されて、クエリのパフォーマンスが低下することがあります。Setting this option to OFF can cause suboptimal query plans and degraded query performance.

sys.databases カタログ ビューの is_auto_update_stats_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_update_stats_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoUpdateStatistics プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoUpdateStatistics property of the DATABASEPROPERTYEX function.

詳細については、「統計」の「データベース全体の統計オプションの使用」セクションを参照してください。For more information, see the section "Using the Database-wide statistics options" in Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ONON
AUTO_UPDATE_STATISTICS オプションの統計の更新を非同期更新にするように指定します。Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are asynchronous. クエリ オプティマイザーでは、統計の更新が完了するのを待たずにクエリをコンパイルします。Query Optimizer doesn't wait for statistics updates to complete before it compiles queries.

AUTO_UPDATE_STATISTICS が ON に設定されていなければ、このオプションを ON に設定しても、効果はありません。Setting this option to ON has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

既定では、AUTO_UPDATE_STATISTICS_ASYNC オプションは OFF であり、クエリ オプティマイザーによる統計は同期更新となります。By default, the AUTO_UPDATE_STATISTICS_ASYNC option is OFF, and Query Optimizer updates statistics synchronously.

OFFOFF
AUTO_UPDATE_STATISTICS オプションの統計の更新を同期更新にするように指定します。Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are synchronous. クエリ オプティマイザーでは、統計の更新が完了するのを待ってからクエリをコンパイルします。Query Optimizer waits for statistics updates to complete before it compiles queries.

注意

AUTO_UPDATE_STATISTICS が ON に設定されていなければ、このオプションを OFF に設定しても、効果はありません。Setting this option to OFF has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

sys.databases カタログ ビューの is_auto_update_stats_async_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_update_stats_async_on column in the sys.databases catalog view.

統計の同期更新と非同期更新をそれぞれどのような場合に使用するのかについては、「統計」の「統計オプション」セクションを参照してください。For more information that describes when to use synchronous or asynchronous statistics updates, see the "Statistics options" section in Statistics.

<automatic_tuning_option> ::= <automatic_tuning_option> ::=
適用対象:SQL ServerSQL Server (SQL Server 2017 (14.x)SQL Server 2017 (14.x) 以降)Applies to: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x))

FORCE_LAST_GOOD_PLAN 自動調整オプションを有効または無効にします。Enables or disables FORCE_LAST_GOOD_PLAN Automatic tuning option.

FORCE_LAST_GOOD_PLAN = { ON | OFF }FORCE_LAST_GOOD_PLAN = { ON | OFF }
ONON
新しいクエリ プランがパフォーマンスの低下を引き起こしている Transact-SQLTransact-SQL クエリに対して、データベース エンジンDatabase Engine では最後の既知の正常なプランが自動的に強制されます。The データベース エンジンDatabase Engine automatically forces the last known good plan on the Transact-SQLTransact-SQL queries where new query plan causes performance regressions. データベース エンジンDatabase Engine では、強制プランを使用する Transact-SQLTransact-SQL クエリのクエリ パフォーマンスが継続的に監視されます。The データベース エンジンDatabase Engine continuously monitors query performance of the Transact-SQLTransact-SQL query with the forced plan.

パフォーマンスが向上した場合、データベース エンジンDatabase Engine では最後の既知の正常なプランの使用が続けられます。If there are performance gains, the データベース エンジンDatabase Engine will keep using last known good plan. パフォーマンスの向上が検出されない場合、データベース エンジンDatabase Engine は新しいクエリ プランを生成します。If performance gains are not detected, the データベース エンジンDatabase Engine will produce a new query plan. クエリ ストアが有効でない場合、または読み取り/書き込みモードでない場合は、ステートメントは失敗します。The statement will fail if the Query Store isn't enabled or if the Query Store isn't in Read-Write mode.

OFFOFF
データベース エンジンDatabase Engine は、sys.dm_db_tuning_recommendations ビューのクエリ プランの変更によって引き起こされる、潜在的なクエリ パフォーマンスの低下をレポートします。The データベース エンジンDatabase Engine reports potential query performance regressions caused by query plan changes in sys.dm_db_tuning_recommendations view. ただし、これらの推奨事項は自動的には適用されません。However, these recommendations are not automatically applied. ユーザーは、ビューに表示される Transact-SQLTransact-SQL スクリプトを適用することによって、アクティブな推奨事項を監視し、特定された問題を解決できます。Users can monitor active recommendations and fix identified problems by applying Transact-SQLTransact-SQL scripts that are shown in the view. 既定値は OFF です。The default value is OFF.

<change_tracking_option> ::= <change_tracking_option> ::=
適用対象: SQL ServerSQL ServerSQL DatabaseSQL DatabaseApplies to: SQL ServerSQL Server and SQL DatabaseSQL Database

変更の追跡のオプションを制御します。Controls change tracking options. 変更の追跡の有効化、オプションの設定、オプションの変更、および変更の追跡の無効化が可能です。You can enable change tracking, set options, change options, and disable change tracking. 例については、後の「例」のセクションをご覧ください。For examples, see the "Examples" section later in this article.

ONON
データベースの変更の追跡を有効にします。Enables change tracking for the database. 変更の追跡を有効にすると、AUTO CLEANUP オプションと CHANGE RETENTION オプションも設定できます。When you enable change tracking, you can also set the AUTO CLEANUP and CHANGE RETENTION options.

AUTO_CLEANUP = { ON | OFF }AUTO_CLEANUP = { ON | OFF }
ONON
指定した保有期間を過ぎると、変更追跡情報が自動的に削除されます。Change tracking information is automatically removed after the specified retention period.

OFFOFF
変更追跡データがデータベースから自動的に削除されることはありません。Change tracking data isn't automatically removed from the database.

CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
データベースに変更追跡情報を保持する最低限の期間を指定します。Specifies the minimum period for keeping change tracking information in the database. データは、AUTO_CLEANUP の値が ON のときにのみ削除されます。Data is removed only when the AUTO_CLEANUP value is ON.

retention_period は、保有期間の数値部分を指定する整数です。retention_period is an integer that specifies the numerical component of the retention period.

既定の保有期間は 2 日です。The default retention period is 2 days. 最小保有期間は 1 分です。The minimum retention period is 1 minute. 保有期間の既定の型は DAYS です。The default retention type is DAYS.

OFFOFF
データベースの変更の追跡を無効にします。Disables change tracking for the database. データベースの変更の追跡を無効にする前に、すべてのテーブルで変更の追跡を無効にしてください。Disable change tracking on all tables before you disable change tracking off the database.

<containment_option> ::= <containment_option> ::=
適用対象: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

データベースの包含オプションを制御します。Controls database containment options.

CONTAINMENT = { NONE | PARTIAL}CONTAINMENT = { NONE | PARTIAL}
なしNONE
データベースは非包含データベースです。The database isn't a contained database.

PARTIALPARTIAL
データベースは包含データベースです。The database is a contained database. レプリケーション、変更データ キャプチャ、または変更の追跡が有効になっているデータベースの包含状態を PARTIAL に設定すると失敗します。Setting database containment to partial will fail if the database has replication, change data capture, or change tracking enabled. エラー チェックは、エラーを 1 つ検出すると停止します。Error checking stops after one failure. 包含データベースの詳細については、「 Contained Databases」をご覧ください。For more information about contained databases, see Contained Databases.

<cursor_option> ::=<cursor_option> ::=

カーソル オプションを制御します。Controls cursor options.

CURSOR_CLOSE_ON_COMMIT { ON | OFF }CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ONON
トランザクションをコミットまたはロール バックしたときに開いていたカーソルはすべて閉じられます。Any cursors open when you commit or roll back a transaction are closed.

OFFOFF
トランザクションがコミットされても、カーソルは開いたままになります。トランザクションをロールバックすると、INSENSITIVE または STATIC として定義されているカーソルを除き、すべてのカーソルが閉じます。Cursors remain open when a transaction is committed; rolling back a transaction closes any cursors except those defined as INSENSITIVE or STATIC.

SET ステートメントを使用した接続レベルの設定は、CURSOR_CLOSE_ON_COMMIT の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for CURSOR_CLOSE_ON_COMMIT. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの CURSOR_CLOSE_ON_COMMIT を OFF に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting CURSOR_CLOSE_ON_COMMIT to OFF for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET CURSOR_CLOSE_ON_COMMIT」をご覧ください。For more information, see SET CURSOR_CLOSE_ON_COMMIT.

sys.databases カタログ ビューの is_cursor_close_on_commit_on 列または DATABASEPROPERTYEX 関数の IsCloseCursorsOnCommitEnabled プロパティを調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_cursor_close_on_commit_on column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled property of the DATABASEPROPERTYEX function.

CURSOR_DEFAULT { LOCAL | GLOBAL }CURSOR_DEFAULT { LOCAL | GLOBAL }
適用対象: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

カーソルのスコープを LOCAL と GLOBAL のどちらにするかを制御します。Controls whether cursor scope uses LOCAL or GLOBAL.

LOCALLOCAL
LOCAL を指定し、カーソルを作成するときにカーソルを GLOBAL と定義しないと、カーソルのスコープはローカルになります。When you specify LOCAL and don't define a cursor as GLOBAL when you create the cursor, the cursor's scope is local. 具体的には、スコープは、カーソルを作成したバッチ、ストアド プロシージャ、またはトリガーに対してローカルです。Specifically, the scope is local to the batch, stored procedure, or trigger in which you created the cursor. カーソル名はこのスコープ内だけで有効です。The cursor name is valid only within this scope.

カーソルは、バッチ、ストアド プロシージャ、またはトリガー内のローカル カーソル変数からか、ストアド プロシージャの OUTPUT パラメーターから参照できます。The cursor can be referenced by local cursor variables in the batch, stored procedure, or trigger, or a stored procedure OUTPUT parameter. バッチ、ストアド プロシージャ、またはトリガーが終了すると、カーソルは暗黙的に割り当てを解除されます。The cursor is implicitly deallocated when the batch, stored procedure, or trigger ends. カーソルが OUTPUT パラメーターで戻されない限り、カーソルは割り当てを解除されます。The cursor is deallocated unless it was passed back in an OUTPUT parameter. カーソルは OUTPUT パラメーターで戻すことができます。The cursor might be passed back in an OUTPUT parameter. カーソルがこの方法で戻された場合は、カーソルを参照している最後の変数が割り当て解除されるか、スコープ外になったときに、カーソルの割り当てが解除されます。If the cursor passes back this way, the cursor is deallocated when the last variable that references the cursor is deallocated or goes out of scope.

GLOBALGLOBAL
カーソルが作成時に LOCAL として定義されていない場合、カーソルのスコープはその接続に対してグローバルになります。When GLOBAL is specified, and a cursor isn't defined as LOCAL when created, the scope of the cursor is global to the connection. カーソル名は、その接続によって実行されるストアド プロシージャやバッチの中で参照できます。The cursor name can be referenced in any stored procedure or batch executed by the connection.

接続が切断されたときだけカーソルが暗黙的に割り当てを解除されます。The cursor is implicitly deallocated only at disconnect. 詳しくは、「DECLARE CURSOR」をご覧ください。For more information, see DECLARE CURSOR.

sys.databases カタログ ビューの is_local_cursor_default 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_local_cursor_default column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsLocalCursorsDefault プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsLocalCursorsDefault property of the DATABASEPROPERTYEX function.

<database_mirroring> <database_mirroring>
適用対象: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

引数の説明については、「ALTER DATABASE データベース ミラーリング」をご覧ください。For the argument descriptions, see ALTER DATABASE Database Mirroring.

<date_correlation_optimization_option> ::= <date_correlation_optimization_option> ::=
適用対象: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

date_correlation_optimization オプションを制御します。Controls the date_correlation_optimization option.

DATE_CORRELATION_OPTIMIZATION { ON | OFF }DATE_CORRELATION_OPTIMIZATION { ON | OFF }
ONON
データベース内にある FOREIGN KEY 制約でリンクされ、datetime 列を含む任意の 2 つのテーブル間の相関関係に関する統計が SQL ServerSQL Server によって保持されます。SQL ServerSQL Server maintains correlation statistics where a FOREIGN KEY constraint links any two tables in the database and the tables have datetime columns.

OFFOFF
相関統計は保持されません。Correlation statistics are not maintained.

DATE_CORRELATION_OPTIMIZATION を ON に設定するには、データベースに対するアクティブな接続が、ALTER DATABASE ステートメントを実行する接続の他には存在しないようにします。To set DATE_CORRELATION_OPTIMIZATION to ON, there must be no active connections to the database except for the connection that's executing the ALTER DATABASE statement. 設定後、複数の接続がサポートされます。Afterwards, multiple connections are supported.

sys.databases カタログ ビューの is_date_correlation_on 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_date_correlation_on column in the sys.databases catalog view.

<db_encryption_option> ::=<db_encryption_option> ::=

データベース暗号化の状態を制御します。Controls the database encryption state.

ENCRYPTION { ON | OFF | SUSPEND | RESUME }ENCRYPTION { ON | OFF | SUSPEND | RESUME }
ONON
暗号化するデータベースを設定します。Sets the database to be encrypted.

OFFOFF
暗号化しないデータベースを設定します。Sets the database to not be encrypted.

SUSPENDSUSPEND
適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降)Applies to: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x))
Transparent Data Encryption が有効化または無効化された後や暗号化キーが変更された後に、暗号化スキャンを一時停止するのに使用できます。Can be used to pause the encryption scan after Transparent Data Encryption has been enabled or disabled, or after the encryption key has been changed.

RESUMERESUME
適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降)Applies to: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x))
以前に一時停止した暗号化スキャンを再開するために使用できます。Can be used to resume a previously paused encryption scan.

データベース暗号化について詳しくは、「透過的なデータ暗号化」および「Azure SQL Database での Transparent Data Encryption」をご覧ください。For more information about database encryption, see Transparent Data Encryption, and Transparent Data Encryption with Azure SQL Database.

データベース レベルで暗号化を有効にすると、すべてのファイル グループが暗号化されます。When encryption is enabled at the database level, all file groups will be encrypted. すべての新しいファイル グループに、その暗号化プロパティが継承されます。Any new file groups will inherit the encrypted property. データベースに READ ONLY に設定されているファイル グループがあると、データベースの暗号化操作は失敗します。If any file groups in the database are set to READ ONLY, the database encryption operation will fail.

データベースの暗号化の状態や暗号化スキャンの状態を確認するには、sys.dm_database_encryption_keys 動的管理ビューを使用します。You can see the encryption state of the database as well as the state of the encryption scan by using the sys.dm_database_encryption_keys dynamic management view.

<db_state_option> ::= <db_state_option> ::=
適用対象: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

データベースの状態を制御します。Controls the state of the database.

OFFLINEOFFLINE
データベースが閉じ、正常にシャットダウンされ、オフラインとしてマークされます。The database is closed, shut down cleanly, and marked offline. データベースがオフラインのときはデータベースを変更できません。The database can't be modified while it's offline.

ONLINEONLINE
データベースが開き、使用可能になります。The database is open and available for use.

EMERGENCYEMERGENCY
データベースは READ_ONLY に設定され、ログ記録が無効になり、アクセスが sysadmin 固定サーバー ロールのメンバーに制限されます。The database is marked READ_ONLY, logging is disabled, and access is limited to members of the sysadmin fixed server role. EMERGENCY は、主にトラブルシューティングの目的で使用されます。EMERGENCY is primarily used for troubleshooting purposes. たとえば、破損したログ ファイルが原因で問題ありとマークされたデータベースを EMERGENCY 状態に設定できます。For example, a database marked as suspect because of a corrupted log file can be set to the EMERGENCY state. この設定で、システム管理者はデータベースに読み取り専用でアクセスできるようになります。This setting could enable the system administrator read-only access to the database. sysadmin 固定サーバー ロールのメンバーのみが、データベースを EMERGENCY 状態に設定できます。Only members of the sysadmin fixed server role can set a database to the EMERGENCY state.

データベースをオフラインまたは EMERGENCY 状態に変更するにはサブジェクト データベースの ALTER DATABASE 権限が、データベースをオフラインからオンラインに変更するには ALTER ANY DATABASE 権限が必要になります。Requires the ALTER DATABASE permission for the subject database, to change a database to the offline or emergency state, and the server level ALTER ANY DATABASE permission to move a database from offline to online.

sys.databases カタログ ビューの state 列と state_desc 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the state and state_desc columns in the sys.databases catalog view. DATABASEPROPERTYEX 関数の Status プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the Status property of the DATABASEPROPERTYEX function. 詳細については、「 データベースの状態」を参照してください。For more information, see Database States.

RESTORING とマークされたデータベースを OFFLINE、ONLINE、または EMERGENCY に設定することはできません。A database marked as RESTORING can't be set to OFFLINE, ONLINE, or EMERGENCY. データベースが RESTORING 状態になるのは、アクティブな復元操作中や、バックアップ ファイルの破損によりデータベースまたはログ ファイルの復元操作が失敗した場合などです。A database may be in the RESTORING state during an active restore operation or when a restore operation of a database or log file fails because of a corrupted backup file.

<db_update_option> ::=<db_update_option> ::=

データベースで更新を許可するかどうかを制御します。Controls whether updates are allowed on the database.

READ_ONLYREAD_ONLY
ユーザーは、データベースのデータを読み取ることができますが、変更はできません。Users can read data from the database but not modify it.

注意

クエリのパフォーマンスを向上させるには、データベースを READ_ONLY に設定する前に統計を更新します。To improve query performance, update statistics before setting a database to READ_ONLY. データベースを READ_ONLY に設定した後に追加の統計が必要な場合は、データベース エンジンDatabase Engine によって統計が tempdb に作成されます。If additional statistics are needed after a database is set to READ_ONLY, the データベース エンジンDatabase Engine will create statistics in tempdb. 読み取り専用データベースの統計について詳しくは、「統計」をご覧ください。For more information about statistics for a read-only database, see Statistics.

READ_WRITEREAD_WRITE
データベースに対して読み取りおよび書き込み操作を行うことができます。The database is available for read and write operations.

この状態を変更するには、データベースに対する排他的アクセスが必要になります。To change this state, you must have exclusive access to the database. 詳細については、SINGLE_USER 句をご覧ください。For more information, see the SINGLE_USER clause.

注意

SQL DatabaseSQL Database のフェデレーション データベースでは、SET {READ_ONLY | READ_WRITE} は無効です。On SQL DatabaseSQL Database federated databases, SET { READ_ONLY | READ_WRITE } is disabled.

<db_user_access_option> ::=<db_user_access_option> ::=

データベースへのユーザー アクセスを制御します。Controls user access to the database.

SINGLE_USER 適用対象: SQL ServerSQL ServerSINGLE_USER Applies to: SQL ServerSQL Server

一度に 1 人のユーザーだけがデータベースにアクセスできます。Specifies that only one user at a time can access the database. SINGLE_USER を指定し、他のユーザーがデータベースに接続している場合には、指定したデータベースからすべてのユーザーが接続解除するまで、ALTER DATABASE ステートメントはブロックされます。If you specify SINGLE_USER and other users connect to the database, the ALTER DATABASE statement is blocked until all users disconnect from the specified database. この動作をオーバーライドする場合は、WITH <termination> 句を確認します。To override this behavior, see the WITH <termination> clause.

このオプションを設定したユーザーがサインアウトしても、データベースは SINGLE_USER モードのままです。そのユーザーがログオフした時点で、他のユーザーが 1 人だけデータベースに接続できます。The database remains in SINGLE_USER mode even if the user that set the option signs out. At that point, a different user, but only one, can connect to the database.

データベースを SINGLE_USER に設定する前に、AUTO_UPDATE_STATISTICS_ASYNC オプションが OFF に設定されていることを確認します。Before you set the database to SINGLE_USER, verify the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF. ON に設定されていると、統計の更新に使用されるバックグラウンド スレッドによってデータベースへの接続が使用されるため、シングル ユーザー モードではデータベースにアクセスできなくなります。When set to ON, the background thread used to update statistics takes a connection against the database, and you'll be unable to access the database in single-user mode. このオプションの状態を表示するには、sys.databases カタログ ビューの is_auto_update_stats_async_on 列を調べます。To view the status of this option, query the is_auto_update_stats_async_on column in the sys.databases catalog view. このオプションが ON に設定されている場合、次の作業を行います。If the option is set to ON, perform the following tasks:

  1. AUTO_UPDATE_STATISTICS_ASYNC を OFF に設定します。Set AUTO_UPDATE_STATISTICS_ASYNC to OFF.

  2. sys.dm_exec_background_job_queue 動的管理ビューにクエリを実行することにより、アクティブな非同期の統計ジョブがあるかどうかを確認します。Check for active asynchronous statistics jobs by querying the sys.dm_exec_background_job_queue dynamic management view.

アクティブなジョブがある場合、それらのジョブが完了するまで待つか、KILL STATS JOB を使用して手動でジョブを終了します。If there are active jobs, either allow the jobs to complete or manually terminate them by using KILL STATS JOB.

RESTRICTED_USERRESTRICTED_USER
db_owner 固定データベース ロール、および dbcreatorsysadmin の固定サーバー ロールのメンバーだけにデータベースへの接続を許可します。Allows for only members of the db_owner fixed database role and dbcreator and sysadmin fixed server roles to connect to the database. RESTRICTED_USER に接続数の制限はありません。RESTRICTED_USER doesn't limit their number. データベースに対するすべての接続は、ALTER DATABASE ステートメントの終了句で指定した時間枠を使用して接続解除されます。Disconnect all connections to the database using the timeframe specified by the ALTER DATABASE statement's termination clause. データベースが RESTRICTED_USER 状態に移行すると、資格のないユーザーによる接続の試みは拒否されます。After the database has transitioned to the RESTRICTED_USER state, connection attempts by unqualified users are refused.

MULTI_USERMULTI_USER
データベースに接続するための適切な権限を持つすべてのユーザーが許可されます。All users that have the appropriate permissions to connect to the database are allowed.

sys.databases カタログ ビューの user_access 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the user_access column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の UserAccess プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the UserAccess property of the DATABASEPROPERTYEX function.

<delayed_durability_option> ::= <delayed_durability_option> ::=
適用対象: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017)

トランザクションを完全持続性または遅延持続性のどちらとしてコミットするかどうかを制御します。Controls whether transactions commit fully durable or delayed durable.

DISABLEDDISABLED
SET DISABLED 以後のトランザクションはすべて完全持続性です。All transactions following SET DISABLED are fully durable. ATOMIC ブロックまたは COMMIT ステートメントで設定された持続性オプションは無視されます。Any durability options set in an atomic block or commit statement are ignored.

ALLOWEDALLOWED
SET ALLOWED 以後のトランザクションはすべて、ATOMIC ブロックまたは COMMIT ステートメントで設定された持続性オプションに応じて、完全持続性または遅延持続性になります。All transactions following SET ALLOWED are either fully durable or delayed durable, depending upon the durability option set in the atomic block or commit statement.

FORCEDFORCED
SET FORCED 以後のトランザクションはすべて遅延持続性です。All transactions following SET FORCED are delayed durable. ATOMIC ブロックまたは COMMIT ステートメントで設定された持続性オプションは無視されます。Any durability options set in an atomic block or commit statement are ignored.

<external_access_option> ::= <external_access_option> ::=
適用対象: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

別のデータベースのオブジェクトなど、外部リソースからデータベースにアクセスできるかどうかを制御します。Controls whether the database can be accessed by external resources, such as objects from another database.

DB_CHAINING { ON | OFF }DB_CHAINING { ON | OFF }
ONON
複数データベースの組み合わせ所有権のソース データベースまたは対象データベースとしてこのデータベースを使用できます。Database can be the source or target of a cross-database ownership chain.

OFFOFF
データベースは、複数データベースの組み合わせ所有権に参加できません。Database can't participate in cross-database ownership chaining.

重要

SQL ServerSQL Server のインスタンスでは、cross db ownership chaining サーバー オプションが 0 (OFF) の場合に、この設定が認識されます。The instance of SQL ServerSQL Server will recognize this setting when the cross db ownership chaining server option is 0 (OFF). cross db ownership chaining が 1 (ON) の場合は、このオプションの値にかかわらず、すべてのユーザー データベースが複数データベースの組み合わせ所有権に参加できます。When cross db ownership chaining is 1 (ON), all user databases can participate in cross-database ownership chains, regardless of the value of this option. このオプションは、sp_configure を使用して設定します。This option is set by using sp_configure.

このオプションを設定するには、データベースに対する CONTROL SERVER 権限が必要です。To set this option, requires CONTROL SERVER permission on the database.

master、model、tempdb の各システム データベースでは、DB_CHAINING オプションを設定できません。The DB_CHAINING option can't be set on the master, model, and tempdb system databases.

sys.databases カタログ ビューの is_db_chaining_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_db_chaining_on column in the sys.databases catalog view.

TRUSTWORTHY { ON | OFF }TRUSTWORTHY { ON | OFF }
ONON
権限借用コンテキストを使用するデータベース モジュール (ユーザー定義関数やストアド プロシージャなど) は、データベース外部のリソースにアクセスできます。Database modules (for example, user-defined functions or stored procedures) that use an impersonation context can access resources outside the database.

OFFOFF
権限借用のコンテキスト内のデータベース モジュールは、データベース外のリソースにアクセスできません。Database modules in an impersonation context can't access resources outside the database.

データベースがアタッチされている場合は常に、TRUSTWORTHY は OFF に設定されます。TRUSTWORTHY is set to OFF whenever the database is attached.

既定では、msdb データベースを除くすべてのシステム データベースで TRUSTWORTHY は OFF に設定されています。By default, all system databases except the msdb database have TRUSTWORTHY set to OFF. model データベースおよび tempdb データベースのこの値は変更できません。The value can't be changed for the model and tempdb databases. master データベースでは、TRUSTWORTHY オプションを ON に設定しないことを強くお勧めします。We recommend that you never set the TRUSTWORTHY option to ON for the master database.

このオプションを設定するには、データベースに対する CONTROL SERVER 権限が必要です。To set this option, requires CONTROL SERVER permission on the database.

sys.databases カタログ ビューの is_trustworthy_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_trustworthy_on column in the sys.databases catalog view.

DEFAULT_FULLTEXT_LANGUAGEDEFAULT_FULLTEXT_LANGUAGE
適用対象: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

フルテキスト インデックス列に、既定の言語の値を指定します。Specifies the default language value for full-text indexed columns.

重要

このオプションは、CONTAINMENT が PARTIAL に設定されている場合にのみ使用できます。This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT が NONE に設定されている場合、エラーが発生します。If CONTAINMENT is set to NONE, errors will occur.

DEFAULT_LANGUAGEDEFAULT_LANGUAGE
適用対象: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

新しく作成するすべてのログインの既定の言語を指定します。Specifies the default language for all newly created logins. ローカル ID (LCID)、言語の名前、または言語のエイリアスを提供することで言語を指定することができます。Language can be specified by providing the local ID (lcid), the language name, or the language alias. 使用可能な言語名およびエイリアスの一覧については、「sys.syslanguages」をご覧ください。For a list of acceptable language names and aliases, see sys.syslanguages. このオプションは、CONTAINMENT が PARTIAL に設定されている場合にのみ使用できます。This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT が NONE に設定されている場合、エラーが発生します。If CONTAINMENT is set to NONE, errors will occur.

NESTED_TRIGGERSNESTED_TRIGGERS
適用対象: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

AFTER トリガーを連鎖できるかどうかを指定します。つまり、1 つの操作が別のトリガーを開始し、開始されたトリガーからさらに別のトリガーを開始するなどの動作ができるかどうかを制御します。Specifies whether an AFTER trigger can cascade; that is, perform an action that initiates another trigger, which initiates another trigger, and so on. このオプションは、CONTAINMENT が PARTIAL に設定されている場合にのみ使用できます。This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT が NONE に設定されている場合、エラーが発生します。If CONTAINMENT is set to NONE, errors will occur.

TRANSFORM_NOISE_WORDSTRANSFORM_NOISE_WORDS
適用対象: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

ノイズ ワード (ストップワード) が原因でフルテキスト クエリのブール演算が失敗する場合に、エラー メッセージを非表示にします。Used to suppress an error message if noise words, or stopwords, cause a Boolean operation on a full-text query to fail. このオプションは、CONTAINMENT が PARTIAL に設定されている場合にのみ使用できます。This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT が NONE に設定されている場合、エラーが発生します。If CONTAINMENT is set to NONE, errors will occur.

TWO_DIGIT_YEAR_CUTOFFTWO_DIGIT_YEAR_CUTOFF
適用対象: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

2 桁の数字を 4 桁の西暦として解釈する場合に、世紀の解釈の区切りとする年を 1753 ~ 9999 範囲の整数で指定します。Specifies an integer from 1753 to 9999 that represents the cutoff year for interpreting two-digit years as four-digit years. このオプションは、CONTAINMENT が PARTIAL に設定されている場合にのみ使用できます。This option is allowable only when CONTAINMENT has been set to PARTIAL. CONTAINMENT が NONE に設定されている場合、エラーが発生します。If CONTAINMENT is set to NONE, errors will occur.

<FILESTREAM_option> ::= <FILESTREAM_option> ::=
適用対象: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017 まで)Applies to: SQL ServerSQL Server ( SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

FileTable の設定を制御します。Controls the settings for FileTables.

NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }NON_TRANSACTED_ACCESS = { OFF | READ_ONLY | FULL }
OFFOFF
FileTable データに対する非トランザクション アクセスは無効になります。Non-transactional access to FileTable data is disabled.

READ_ONLYREAD_ONLY
このデータベース内の FileTable の FILESTREAM データは、非トランザクション プロセスによって読み取ることができます。FILESTREAM data in FileTables in this database can be read by non-transactional processes.

FULLFULL
FileTable の FILESTREAM データに対する完全な非トランザクション アクセスが有効になります。Enables full, non-transactional access to FILESTREAM data in FileTables is enabled.

DIRECTORY_NAME = <directory_name> DIRECTORY_NAME = <directory_name>
Windows と互換性のあるディレクトリ名です。A windows-compatible directory name. この名前は、SQL ServerSQL Server インスタンス内のすべてのデータベース レベルのディレクトリ名の中で一意である必要があります。This name should be unique among all the database-level directory names in the SQL ServerSQL Server instance. 一意性の比較では、照合順序の設定とは関係なく、大文字と小文字は区別されません。Uniqueness comparison is case-insensitive, regardless of collation settings. このオプションは、このデータベース内に FileTable を作成する前に設定する必要があります。This option must be set before creating a FileTable in this database.

<HADR_options> ::= <HADR_options> ::=
適用対象: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

ALTER DATABASE SET HADR」をご覧ください。See ALTER DATABASE SET HADR.

<mixed_page_allocation_option> ::= <mixed_page_allocation_option> ::=
適用対象: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

データベースが、テーブルまたはインデックスの最初の 8 ページに対して混合エクステントを使用して、最初のページを作成できるかどうかを制御します。Controls whether the database can create initial pages using a mixed extent for the first eight pages of a table or index.

MIXED_PAGE_ALLOCATION { OFF | ON }MIXED_PAGE_ALLOCATION { OFF | ON }
OFFOFF
データベースは、常に単一エクステントを使用して最初のページを作成します。The database always creates initial pages using uniform extents. 既定値は OFF です。OFF is the default value.

ONON
データベースは、混合エクステントを使用して最初のページを作成できます。The database can create initial pages using mixed extents.

この設定は、すべてのシステム データベースに対して ON です。This setting is ON for all system databases. tempdb は OFF に対応する唯一のシステム データベースです。tempdb is the only system database that supports OFF.

<PARAMETERIZATION_option> ::=<PARAMETERIZATION_option> ::=

パラメーター化オプションを制御します。Controls the parameterization option. パラメーター化の詳細については、「クエリ処理アーキテクチャ ガイド」をご覧ください。For more information on parameterization, see the Query Processing Architecture Guide.

PARAMETERIZATION { SIMPLE | FORCED }PARAMETERIZATION { SIMPLE | FORCED }
SIMPLESIMPLE
クエリは、データベースの既定の動作に基づいてパラメーター化されます。Queries are parameterized based on the default behavior of the database.

FORCEDFORCED
SQL ServerSQL Server は、データベース内にあるすべてのクエリをパラメーター化します。parameterizes all queries in the database.

sys.databases カタログ ビューの is_parameterization_forced column 列を調べることで、このオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_parameterization_forced column in the sys.databases catalog view.

<query_store_options> ::= <query_store_options> ::=
適用対象: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

ON | OFF | CLEAR [ ALL ]ON | OFF | CLEAR [ ALL ]
このデータベースでクエリ ストアを有効にするかどうかを制御します。また、クエリ ストアの内容の削除も制御します。Controls whether the Query Store is enabled in this database, and also controls removing the contents of the Query Store. 詳細については、「クエリ ストアの使用シナリオ」を参照してください。For more information, see Query Store Usage Scenarios.

ONON
クエリのストアを有効にします。Enables the Query Store.

OFFOFF
クエリのストアを無効にします。Disables the Query Store. 既定値は OFF です。OFF is the default value.

CLEARCLEAR
クエリ ストアの内容を削除します。Remove the contents of the Query Store.

OPERATION_MODE { READ_ONLY | READ_WRITE }OPERATION_MODE { READ_ONLY | READ_WRITE }
クエリのストアの操作モードについて説明します。Describes the operation mode of the Query Store.

READ_WRITEREAD_WRITE
クエリ ストアでクエリ プランとランタイム実行の統計情報が収集され、保持されます。The Query Store collects and persists query plan and runtime execution statistics information.

READ_ONLYREAD_ONLY
クエリ ストアから情報を読み取ることはできますが、新しい情報は追加されません。Information can be read from the Query Store, but new information isn't added. クエリ ストアの最大発行領域がすべて使用された場合は、クエリ ストアの操作モードは READ_ONLY に変わります。If the maximum issued space of the Query Store has been exhausted, the Query Store will change is operation mode to READ_ONLY.

CLEANUP_POLICYCLEANUP_POLICY
クエリ ストアのデータ保持ポリシーを表します。Describes the data retention policy of the Query Store. STALE_QUERY_THRESHOLD_DAYS により、クエリ ストアにクエリの情報が保持される日数が決定されます。STALE_QUERY_THRESHOLD_DAYS determines the number of days for which the information for a query is kept in the Query Store. STALE_QUERY_THRESHOLD_DAYS は bigint 型です。STALE_QUERY_THRESHOLD_DAYS is type bigint.

DATA_FLUSH_INTERVAL_SECONDSDATA_FLUSH_INTERVAL_SECONDS
クエリ ストアに書き込まれるデータがディスクに永続化される頻度を決定します。Determines the frequency at which data written to the Query Store is persisted to disk. パフォーマンスを最適化するため、クエリ ストアで収集したデータは非同期的にディスクに書き込まれます。To optimize for performance, data collected by the Query Store is asynchronously written to the disk. この非同期転送の頻度は、DATA_FLUSH_INTERVAL_SECONDS 引数を使用して構成します。The frequency at which this asynchronous transfer occurs is configured by using the DATA_FLUSH_INTERVAL_SECONDS argument. DATA_FLUSH_INTERVAL_SECONDS は bigint 型です。DATA_FLUSH_INTERVAL_SECONDS is type bigint.

MAX_STORAGE_SIZE_MBMAX_STORAGE_SIZE_MB
クエリ ストアに発行される領域を示します。Determines the space issued to the Query Store. MAX_STORAGE_SIZE_MB は bigint 型です。MAX_STORAGE_SIZE_MB is type bigint.

注意

MAX_STORAGE_SIZE_MB 制限は、厳密には適用されません。MAX_STORAGE_SIZE_MB limit isn't strictly enforced. ストレージ サイズは、クエリ ストアでディスクにデータが書き込まれる場合にのみ確認されます。Storage size is checked only when Query Store writes data to disk. この間隔は DATA_FLUSH_INTERVAL_SECONDS オプションか、Management StudioManagement Studio クエリ ストアのダイアログ ボックス オプションである [データのフラッシュ間隔] によって設定されます。This interval is set by the DATA_FLUSH_INTERVAL_SECONDS option or the Management StudioManagement Studio Query Store dialog box option Data Flush Interval. 間隔の既定値は 900 秒 (15 分) です。The interval default value is 900 seconds (or 15 minutes).
クエリ ストアでストレージ サイズの確認の合間に MAX_STORAGE_SIZE_MB の制限を超えた場合は、読み取り専用モードに移行します。If the Query Store has breached the MAX_STORAGE_SIZE_MB limit between storage size checks, it will transition to read-only mode. SIZE_BASED_CLEANUP_MODE が有効になっている場合、MAX_STORAGE_SIZE_MB 制限を適用するクリーンアップ メカニズムもトリガーされます。If SIZE_BASED_CLEANUP_MODE is enabled, the cleanup mechanism to enforce the MAX_STORAGE_SIZE_MB limit is also triggered.

INTERVAL_LENGTH_MINUTESINTERVAL_LENGTH_MINUTES
クエリのストアにランタイムの実行の統計データを集計する時間間隔を決定します。Determines the time interval at which runtime execution statistics data is aggregated into the Query Store. 領域使用量を最適化するため、ランタイム統計情報ストアのランタイム実行統計情報は、一定の時間枠で集計されます。To optimize for space usage, the runtime execution statistics in the runtime stats store are aggregated over a fixed time window. この固定間隔の構成に、INTERVAL_LENGTH_MINUTES 引数を使用します。This fixed time window is configured by using the INTERVAL_LENGTH_MINUTES argument. INTERVAL_LENGTH_MINUTES は bigint 型です。INTERVAL_LENGTH_MINUTES is type bigint.

SIZE_BASED_CLEANUP_MODE { AUTO | OFF }SIZE_BASED_CLEANUP_MODE { AUTO | OFF }
データの総量が最大サイズに近づいたときにクリーンアップを自動的にアクティブにするかどうかを制御します。Controls whether cleanup automatically activates when the total amount of data gets close to maximum size.

AUTOAUTO
ディスクのサイズが MAX_STORAGE_SIZE_MB の 90% に達すると、サイズ ベースのクリーンアップが自動的にアクティブ化されます。Size-based cleanup will be automatically activated when size on disk reaches 90% of MAX_STORAGE_SIZE_MB. サイズのクリーンアップでは、まず最も安価で最も古いクエリを削除します。Size-based cleanup removes the least expensive and oldest queries first. MAX_STORAGE_SIZE_MB の約 80% で停止します。この値が既定の構成値です。It stops at approximately 80% of MAX_STORAGE_SIZE_MB.This value is the default configuration value.

OFFOFF
サイズ ベースのクリーンアップは自動的にアクティブ化されません。Size-based cleanup won't be automatically activated.

SIZE_BASED_CLEANUP_MODE は nvarchar 型です。SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODE { ALL | AUTO | NONE | CUSTOM }QUERY_CAPTURE_MODE { ALL | AUTO | NONE | CUSTOM }
現在アクティブなクエリのキャプチャ モードを指定します。Designates the currently active query capture mode. 各モードでは、特定のクエリ キャプチャ ポリシーを定義します。Each mode defines specific query capture policies.

注意

クエリ キャプチャ モードが ALL、AUTO、または CUSTOM に設定されている場合、カーソル、ストアド プロシージャ内のクエリ、およびネイティブ コンパイル済みのクエリは常にキャプチャされます。Cursors, queries inside Stored Procedures, and Natively compiled queries are always captured when the query capture mode is set to ALL, AUTO, or CUSTOM.

ALLALL
すべてのクエリをキャプチャします。Captures all queries. ALLSQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017 (14.x)SQL Server 2017 (14.x) まで) の既定の構成値です。ALL is the default configuration value for SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017 (14.x)SQL Server 2017 (14.x)).

AUTOAUTO
実行の数とリソースの消費量に基づいて関連するクエリがキャプチャされます。Capture relevant queries based on execution count and resource consumption. これは SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降) と Azure SQL データベースAzure SQL Database の既定の構成値です。This is the default configuration value for SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL データベースAzure SQL Database.

なしNONE
新しいクエリのキャプチャを停止します。Stop capturing new queries. クエリ ストアは、既にキャプチャされたクエリのコンパイルと実行時の統計情報を収集し続けます。The Query Store will continue to collect compile and runtime statistics for queries that were captured already. 重要なクエリがキャプチャされない可能性があるため、この構成は慎重に使用してください。Use this configuration with caution since you may miss capturing important queries.

CUSTOMCUSTOM
適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 3.0 以降)Applies to: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 3.0)

QUERY_CAPTURE_POLICY オプションを制御できます。Allows control over the QUERY_CAPTURE_POLICY options.

QUERY_CAPTURE_MODE は nvarchar 型です。QUERY_CAPTURE_MODE is type nvarchar.

max_plans_per_queryMAX_PLANS_PER_QUERY
各クエリに対して保持するプランの最大数を定義します。Defines the maximum number of plans maintained for each query. 既定値は 200 です。The default is 200. MAX_PLANS_PER_QUERY は int 型です。MAX_PLANS_PER_QUERY is type int.

<query_capture_policy_option_list> :: = <query_capture_policy_option_list> :: =
適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 3.0 以降)Applies to: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) CTP 3.0)

クエリ ストアのキャプチャ ポリシー オプションを制御します。Controls the Query Store capture policy options. STALE_CAPTURE_POLICY_THRESHOLD を除き、これらのオプションでは、定義された古いキャプチャ ポリシーのしきい値でクエリがキャプチャされるために必要な OR 条件が定義されます。Except for STALE_CAPTURE_POLICY_THRESHOLD, these options define the OR conditions that need to happen for queries to be captured in the defined Stale Capture Policy Threshold value.

STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }STALE_CAPTURE_POLICY_THRESHOLD = number { DAYS | HOURS }
クエリをキャプチャすべきかどうかを決定する評価の間隔を定義します。Defines the evaluation interval period to determine if a query should be captured. 既定値は 1 日で、1 時間から 7 日に設定できます。The default is 1 day, and it can be set from 1 hour to seven days. numberint 型です。number is type int.

EXECUTION_COUNTEXECUTION_COUNT
評価期間中、クエリを実行する回数を定義します。Defines the number of times a query is executed over the evaluation period. 既定値は 30 です。これは、既定の古いキャプチャ ポリシーのしきい値に対して、クエリがクエリ ストアに保存されるためには、1 日で 30 回以上実行される必要があることを意味します。The default is 30, which means that for the default Stale Capture Policy Threshold, a query must execute at least 30 times in one day to be persisted in the Query Store. EXECUTION_COUNT は int 型です。EXECUTION_COUNT is type int.

TOTAL_COMPILE_CPU_TIME_MSTOTAL_COMPILE_CPU_TIME_MS
評価期間中、クエリで使用されるコンパイル CPU 時間の合計経過時間を定義します。Defines total elapsed compile CPU time used by a query over the evaluation period. 既定値は 1,000 です。これは、既定の古いキャプチャ ポリシーのしきい値の場合、クエリがクエリ ストアに保存されるためには、1 日でクエリのコンパイル時に費やされる CPU 時間の合計が 1 秒以上である必要があることを意味します。The default is 1000 which means that for the default Stale Capture Policy Threshold, a query must have a total of at least one second of CPU time spent during query compilation in one day to be persisted in the Query Store. TOTAL_COMPILE_CPU_TIME_MS は int 型です。TOTAL_COMPILE_CPU_TIME_MS is type int.

TOTAL_EXECUTION_CPU_TIME_MSTOTAL_EXECUTION_CPU_TIME_MS
評価期間中、クエリによって使用される実行 CPU の合計経過時間を定義します。Defines total elapsed execution CPU time used by a query over the evaluation period. 既定値は 100 です。これは、既定の古いキャプチャ ポリシーのしきい値に対して、クエリがクエリ ストアに保存されるためには、1 日で実行に費やされる CPU 時間の合計が 100 ミリ秒以上である必要があることを意味します。The default is 100 which means that for the default Stale Capture Policy Threshold, a query must have a total of at least 100 ms of CPU time spent during execution in one day to be persisted in the Query Store. TOTAL_EXECUTION_CPU_TIME_MS は int 型です。TOTAL_EXECUTION_CPU_TIME_MS is type int.

<recovery_option> ::= <recovery_option> ::=
適用対象: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

データベース復旧オプションおよびディスク I/O エラー チェックを制御します。Controls database recovery options and disk I/O error checking.

FULLFULL
メディア障害が発生した後に、トランザクション ログのバックアップを使用して、完全復旧を行います。Provides full recovery after media failure by using transaction log backups. データ ファイルが破損した場合、メディアの復旧によって、コミットされたすべてのトランザクションを復元できます。If a data file is damaged, media recovery can restore all committed transactions. 詳しくは、「復旧モデル」をご覧ください。For more information, see Recovery Models.

BULK_LOGGEDBULK_LOGGED
メディア障害が発生した後に復旧が行われます。Provides recovery after media failure. 特定の大規模操作または一括操作に使用するログ領域が最も少なく、パフォーマンスが最もよくなる方法で実行されます。Combines the best performance and least amount of log-space use for certain large-scale or bulk operations. 最小ログ記録が可能な操作について詳しくは、「トランザクション ログ」をご覧ください。For information about what operations can be minimally logged, see The Transaction Log. BULK_LOGGED 復旧モデルでは、これらの操作に関するログ記録は最小になります。Under the BULK_LOGGED recovery model, logging for these operations is minimal. 詳しくは、「復旧モデル」をご覧ください。For more information, see Recovery Models.

SIMPLESIMPLE
最小のログ領域を使用する、単純なバックアップ方法が実行されます。A simple backup strategy that uses minimal log space is provided. ログ領域は、サーバー障害の復旧での使用が終わると自動的に再利用できるようになります。Log space can be automatically reused when it's no longer required for server failure recovery. 詳しくは、「復旧モデル」をご覧ください。For more information, see Recovery Models.

重要

単純復旧モデルは、他の 2 つのモデルよりも管理が簡単ですが、データ ファイルが破損した場合にデータが失われる危険性が高くなります。The simple recovery model is easier to manage than the other two models but at the expense of greater data loss exposure if a data file is damaged. 前回のデータベースのバックアップ作成や差分バックアップ作成の後に行った変更はすべて失われるため、手作業で入力し直す必要があります。All changes since the most recent database or differential database backup are lost and must be manually reentered.

既定の復旧モデルは、model データベースの復旧モデルによって決定されます。The default recovery model is determined by the recovery model of the model database. 適切な復旧モデルの選択について詳しくは、「復旧モデル」をご覧ください。For more information about selecting the appropriate recovery model, see Recovery Models.

sys.databases カタログ ビューの recovery_model 列と recovery_model_desc 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the recovery_model and recovery_model_desc columns in the sys.databases catalog view. DATABASEPROPERTYEX 関数の Recovery プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the Recovery property of the DATABASEPROPERTYEX function.

TORN_PAGE_DETECTION { ON | OFF }TORN_PAGE_DETECTION { ON | OFF }
ONON
データベース エンジンDatabase Engine によって、不完全なページを検出できます。Incomplete pages can be detected by the データベース エンジンDatabase Engine.

OFFOFF
データベース エンジンDatabase Engine によって、不完全なページを検出できません。Incomplete pages can't be detected by the データベース エンジンDatabase Engine.

重要

構文構造 TORN_PAGE_DETECTION ON | OFF は、将来のバージョンの SQL ServerSQL Server では削除される予定です。The syntax structure TORN_PAGE_DETECTION ON | OFF will be removed in a future version of SQL ServerSQL Server. 新しい開発作業ではこの構文構造の使用を避け、現在この構文構造を使用しているアプリケーションは修正するようにしてください。Avoid using this syntax structure in new development work, and plan to modify applications that currently use the syntax structure. 代わりに、PAGE_VERIFY オプションを使用してください。Use the PAGE_VERIFY option instead.

PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }PAGE_VERIFY { CHECKSUM | TORN_PAGE_DETECTION | NONE }
ディスク I/O パスのエラーが原因で破損したデータベース ページを検出します。Discovers damaged database pages caused by disk I/O path errors. ディスク I/O パスのエラーは、データベース破損問題の原因となる可能性があります。Disk I/O path errors can be the cause of database corruption problems. このようなエラーは、主にページがディスクに書き込まれている最中に発生した電源障害やディスクのハードウェア障害によって引き起こされます。These errors are most often caused by power failures or disk hardware failures that occur at the time the page is written to disk.

CHECKSUMCHECKSUM
ページ全体の内容についてチェックサムを計算し、ページがディスクに書き込まれるときに、その値をページ ヘッダーに格納します。Calculates a checksum over the contents of the whole page and stores the value in the page header when a page is written to disk. ページがディスクから読み取られるときに、チェックサムが再計算され、ページ ヘッダーに格納されているチェックサムの値と比較されます。When the page is read from disk, the checksum is recomputed and compared to the checksum value stored in the page header. 両方の値が一致しない場合は、SQL ServerSQL Server エラー ログと Windows イベント ログの両方に、エラー メッセージ 824 (チェックサム エラーを示す) がレポートされます。If the values don't match, error message 824 (indicating a checksum failure) is reported to both the SQL ServerSQL Server error log and the Windows event log. チェックサム エラーは、I/O パスに問題があることを示します。A checksum failure indicates an I/O path problem. 根本的な原因を確認するには、ハードウェア、ファームウェア ドライバー、BIOS、フィルター ドライバー (ウイルス対策ソフトウェアなど)、およびその他の I/O パス コンポーネントを点検する必要があります。To determine the root cause requires investigation of the hardware, firmware drivers, BIOS, filter drivers (such as virus software), and other I/O path components.

TORN_PAGE_DETECTIONTORN_PAGE_DETECTION
8 KB のデータベース ページに含まれる 512 バイトのセクターごとに特定の 2 ビット パターンを保存し、ページがディスクに書き込まれるときに、データベース ページ ヘッダーに格納します。Saves a specific 2-bit pattern for each 512-byte sector in the 8-kilobyte (KB) database page and stored in the database page header when the page is written to disk. そのページがディスクから読み取られるときに、ページ ヘッダーに保存されている各セクターの破損ビットと、実際のページ セクター情報とが比較されます。When the page is read from disk, the torn bits stored in the page header are compared to the actual page sector information.

値が一致しない場合は、ページの一部だけがディスクに書き込まれています。Unmatched values indicate that only part of the page was written to disk. この場合、SQL ServerSQL Server エラー ログと Windows イベント ログの両方に、エラー メッセージ 824 (破損ページ エラーを示す) がレポートされます。In this situation, error message 824 (indicating a torn page error) is reported to both the SQL ServerSQL Server error log and the Windows event log. ページの不完全書き込みにより破損したページは、通常はデータベース復旧時に検出されます。Torn pages are typically detected by database recovery if it's truly an incomplete write of a page. ただし、その他の I/O パス障害によっても、破損ページが発生する可能性があります。However, other I/O path failures can cause a torn page at any time.

なしNONE
データベース ページの書き込み時に CHECKSUM 値または TORN_PAGE_DETECTION 値は生成されません。Database page writes won't generate a CHECKSUM or TORN_PAGE_DETECTION value. SQL ServerSQL Server は、ページ ヘッダーに CHECKSUM 値や TORN_PAGE_DETECTION 値が存在する場合でも、読み取り中にチェックサムや破損ページを確認しません。will not verify a checksum or torn page during a read even if a CHECKSUM or TORN_PAGE_DETECTION value is present in the page header.

PAGE_VERIFY オプションを使用する場合は、次に示す重要な点を考慮してください。Consider the following important points when you use the PAGE_VERIFY option:

  • 既定値は CHECKSUM です。The default is CHECKSUM.

  • ユーザー データベースまたはシステム データベースを SQL Server 2005 (9.x)SQL Server 2005 (9.x) 以降のバージョンにアップグレードしても、PAGE_VERIFY 値 (NONE または TORN_PAGE_DETECTION) は変更されません。When a user or system database is upgraded to SQL Server 2005 (9.x)SQL Server 2005 (9.x) or a later version, the PAGE_VERIFY value (NONE or TORN_PAGE_DETECTION) isn't changed. CHECKSUM に変更することをお勧めします。We recommend that you change to CHECKSUM.

    注意

    SQL ServerSQL Server の以前のバージョンでは、PAGE_VERIFY データベース オプションは tempdb データベースについては NONE に設定されており、変更できません。In earlier versions of SQL ServerSQL Server, the PAGE_VERIFY database option is set to NONE for the tempdb database and can't be modified. SQL Server 2008SQL Server 2008 以降のバージョンでは、SQL ServerSQL Server の新規インストールに対する tempdb データベースの既定値は CHECKSUM です。In SQL Server 2008SQL Server 2008 and later versions, the default value for the tempdb database is CHECKSUM for new installations of SQL ServerSQL Server. インストール済みの SQL ServerSQL Server をアップグレードした場合、既定値は NONE のままです。When upgrading an installation SQL ServerSQL Server, the default value remains NONE. このオプションは変更できます。The option can be modified. tempdb データベースでは CHECKSUM を使用することをお勧めします。We recommend that you use CHECKSUM for the tempdb database.

  • TORN_PAGE_DETECTION は、使用するリソースが比較的少なくて済みますが、CHECKSUM による保護の最小限のサブセットしか利用できません。TORN_PAGE_DETECTION may use fewer resources but provides a minimal subset of the CHECKSUM protection.

  • PAGE_VERIFY は、データベースをオフラインにしたり、データベースをロックしたりなど、そのデータベース上でのコンカレンシーを妨げるような措置を取らずに設定できます。PAGE_VERIFY can be set without taking the database offline, locking the database, or otherwise impeding concurrency on that database.

  • CHECKSUM は、TORN_PAGE_DETECTION と共存できません。CHECKSUM is mutually exclusive to TORN_PAGE_DETECTION. 両方のオプションを同時に有効化することはできません。Both options can't be enabled at the same time.

破損ページまたはチェックサム エラーが検出された場合には、データを復元することで復旧できます。障害がインデックス ページだけに限られていれば、インデックスを再構築することで復旧できる可能性があります。When a torn page or checksum failure is detected, you can recover by restoring the data or potentially rebuilding the index if the failure is limited only to index pages. チェックサム エラーが発生した場合、影響を受けるデータベース ページの種類を判別するには、DBCC CHECKDB を実行します。If you encounter a checksum failure, to determine the type of database page or pages affected, run DBCC CHECKDB. 復元オプションについて詳しくは、「RESTORE の引数」をご覧ください。For more information about restore options, see RESTORE Arguments. データを復元すれば、データ破損の問題は解決しますが、エラーが継続的に発生することを防ぐには、ディスク ハードウェア障害などの根本的な原因を、直ちに診断して修正しておく必要があります。Although restoring the data will resolve the data corruption problem, the root cause, for example, disk hardware failure, should be diagnosed and corrected as soon as possible to prevent continuing errors.

SQL ServerSQL Server は、チェックサム、破損ページ、またはその他の I/O エラーで読み取りに失敗した場合、その読み取りを 4 回再試行します。will retry any read that fails with a checksum, torn page, or other I/O error four times. いずれかの再試行で読み取りに成功した場合には、エラー ログにメッセージが書き込まれます。If the read is successful in any one of the retry attempts, a message is written to the error log. その読み取りをトリガーしたコマンドは続行されます。The command that triggered the read will continue. 再試行が失敗した場合には、そのコマンドはエラー メッセージ 824 で失敗します。The command will fail with error message 824 if the retry attempts fail.

エラー メッセージ 823、824、および 825 の詳細については、以下を参照してください。For more information about error messages 823, 824 and 825, see:

sys.databases カタログ ビューの page_verify_option 列または DATABASEPROPERTYEX 関数の IsTornPageDetectionEnabled プロパティを調べることでこのオプションの現在の状態を判断できます。The current setting of this option can be determined by examining the page_verify_option column in the sys.databases catalog view or the IsTornPageDetectionEnabled property of the DATABASEPROPERTYEX function.

<remote_data_archive_option> ::= <remote_data_archive_option> ::=
適用対象: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

そのデータベースについて Stretch Database を有効または無効にします。Enables or disables Stretch Database for the database. 詳細については、「 Stretch Database」を参照してください。For more info, see Stretch Database.

REMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name> , { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } )| OFF REMOTE_DATA_ARCHIVE = { ON ( SERVER = <server_name> , { CREDENTIAL = <db_scoped_credential_name> | FEDERATED_SERVICE_ACCOUNT = ON | OFF } )| OFF
ONON
データベースの Stretch Database を有効にします。Enables Stretch Database for the database. 追加の前提条件を含む詳細については、「データベースに対して Stretch Database を有効にする」を参照してください。For more info, including additional prerequisites, see Enable Stretch Database for a database.

テーブルの Stretch Database を有効にするには db_owner 権限が必要です。Requires db_owner permission to enable Stretch Database for a table. テーブルの Stretch Database を有効にするには db_owner 権限と CONTROL DATABASE 権限が必要です。Requires db_owner and CONTROL DATABASE permissions to enable Stretch Database for a database.

SERVER = <server_name>SERVER = <server_name>
Azure サーバーのアドレスを指定します。Specifies the address of the Azure server. 名前の .database.windows.net の部分を含めます。Include the .database.windows.net portion of the name. たとえば、MyStretchDatabaseServer.database.windows.net のようになります。For example, MyStretchDatabaseServer.database.windows.net.

CREDENTIAL = <db_scoped_credential_name>CREDENTIAL = <db_scoped_credential_name>
SQL ServerSQL Server のインスタンスが Azure サーバーに接続するために使用する、データベース スコープ資格情報を指定します。Specifies the database scoped credential that the instance of SQL ServerSQL Server uses to connect to the Azure server. このコマンドを実行する前に、資格情報が存在することを確認してください。Make sure the credential exists before you run this command. 詳しくは、「CREATE DATABASE SCOPED CREDENTIAL」をご覧ください。For more info, see CREATE DATABASE SCOPED CREDENTIAL.

FEDERATED_SERVICE_ACCOUNT = { ON | OFF }FEDERATED_SERVICE_ACCOUNT = { ON | OFF }
以下の条件をすべて満たす場合、オンプレミスの SQL Server のフェデレーション サービス アカウントを使用して、リモート Azure サーバーと通信できます。You can use a federated service account for the on-premises SQL Server to communicate with the remote Azure server when the following conditions are all true.

  • SQL Server のインスタンスを実行しているサービス アカウントがドメイン アカウントである。The service account under which the instance of SQL Server is running is a domain account.
  • Active Directory が Azure Active Directory とフェデレーションされているドメインに、ドメイン アカウントが属している。The domain account belongs to a domain whose Active Directory is federated with Azure Active Directory.
  • Azure Active Directory 認証をサポートするように、リモート Azure サーバーが構成されている。The remote Azure server is configured to support Azure Active Directory authentication.
  • SQL Server のインスタンスを実行しているサービス アカウントが、リモート Azure サーバー上で dbmanager または sysadmin アカウントとして構成されている。The service account under which the instance of SQL Server is running must be configured as a dbmanager or sysadmin account on the remote Azure server.

フェデレーション サービス アカウントを ON に指定している場合は、CREDENTIAL 引数も指定できません。If you specify that the federated service account is ON, you can't also specify the CREDENTIAL argument. OFF を指定する場合は、CREDENTIAL 引数を指定してください。Provide the CREDENTIAL argument if you specify OFF.

OFFOFF
データベースの Stretch Database は無効になります。Disables Stretch Database for the database. 詳細については、「 Stretch Database を無効にして、リモート データを戻す」を参照してください。For more info, see Disable Stretch Database and bring back remote data.

データベースの Stretch Database を無効にするには、Stretch Database に対して有効なテーブルがデータベースに含まれていない状態にする必要があります。You can only disable Stretch Database for a database after the database no longer contains any tables that are enabled for Stretch Database. Stretch Database を無効にすると、データ移行は停止します。After you disable Stretch Database, data migration stops. また、クエリ結果にリモート テーブルの結果が含まれなくなります。Also, query results no longer include results from remote tables.

Stretch を無効にしても、リモート データベースは削除されません。Disabling Stretch doesn't remove the remote database. リモート データベースを削除するには、Azure portal を使用してそれを削除します。To delete the remote database, drop it by using the Azure portal.

<service_broker_option> ::= <service_broker_option> ::=
適用対象: SQL ServerSQL ServerApplies to: SQL ServerSQL Server

次の Service BrokerService Broker オプション (メッセージ配信の有効化または無効化、新しい Service BrokerService Broker 識別子の設定、メッセージ交換の優先度の ON または OFF への設定) を制御します。Controls the following Service BrokerService Broker options: enables or disables message delivery, sets a new Service BrokerService Broker identifier, or sets conversation priorities to ON or OFF.

ENABLE_BROKERENABLE_BROKER
指定したデータベースに対して Service BrokerService Broker を有効にします。Specifies that Service BrokerService Broker is enabled for the specified database. メッセージ配信が開始され、sys.databases カタログ ビューで is_broker_enabled フラグが true に設定されます。Message delivery is started, and the is_broker_enabled flag is set to true in the sys.databases catalog view. データベースは、既存の Service BrokerService Broker 識別子を保持します。The database keeps the existing Service BrokerService Broker identifier. Service Broker は、データベースがデータベース ミラーリング構成でプリンシパルである間は有効にすることができません。Service broker can't be enabled while the database is the principal in a database mirroring configuration.

注意

ENABLE_BROKER には排他的データベース ロックが必要です。ENABLE_BROKER requires an exclusive database lock. 他のセッションによってデータベースのリソースがロックされている場合、ENABLE_BROKER は、そのセッションがロックを解除するまで待機します。If other sessions have locked resources in the database, ENABLE_BROKER will wait until the other sessions release their locks. ユーザー データベースで Service BrokerService Broker を有効にするには、データベースをシングル ユーザー モードに設定するなどして、他のセッションがそのデータベースを使用しないようにしてから ALTER DATABASE SET ENABLE_BROKER ステートメントを実行する必要があります。To enable Service BrokerService Broker in a user database, ensure that no other sessions are using the database before you run the ALTER DATABASE SET ENABLE_BROKER statement, such as by putting the database in single user mode. msdb データベースで Service BrokerService Broker を有効にするには、SQL ServerSQL Server で必要なロックを取得できるように、まず Service BrokerService Broker エージェントを停止します。To enable Service BrokerService Broker in the msdb database, first stop SQL ServerSQL Server Agent so that Service BrokerService Broker can obtain the necessary lock.

DISABLE_BROKERDISABLE_BROKER
指定したデータベースに対して Service BrokerService Broker を無効にします。Specifies that Service BrokerService Broker is disabled for the specified database. メッセージ配信が停止され、is_broker_enabled フラグが sys.databases カタログ ビューで false に設定されます。Message delivery is stopped, and the is_broker_enabled flag is set to false in the sys.databases catalog view. データベースは、既存の Service BrokerService Broker 識別子を保持します。The database keeps the existing Service BrokerService Broker identifier.

NEW_BROKERNEW_BROKER
新しいブローカー識別子を受信するようにデータベースに指示します。Specifies that the database should receive a new broker identifier. データベースは、新しい Service Broker として動作します。The database acts as a new service broker. そのため、データベースにおける既存のすべてのメッセージ交換は、終了ダイアログ メッセージを生成せずに、直ちに削除されます。As such, all existing conversations in the database are immediately removed without producing end dialog messages. 古い Service BrokerService Broker 識別子を参照するルートは、新しい識別子を使用して作成し直す必要があります。Any route that references the old Service BrokerService Broker identifier must be re-created with the new identifier.

ERROR_BROKER_CONVERSATIONSERROR_BROKER_CONVERSATIONS
Service BrokerService Broker メッセージ配信を有効にします。Specifies that Service BrokerService Broker message delivery is enabled. この設定は、データベースの既存の Service BrokerService Broker 識別子を保持します。This setting preserves the existing Service BrokerService Broker identifier for the database. Service BrokerService Broker により、データベース内のメッセージ交換がすべて終了し、エラーが返されます。ends all conversations in the database with an error. この設定により、アプリケーションは既存のメッセージ交換に対して通常のクリーンアップを実行できるようになります。This setting enables applications to run regular cleanup for existing conversations.

HONOR_BROKER_PRIORITY {ON | OFF}HONOR_BROKER_PRIORITY {ON | OFF}
ONON
メッセージ交換に割り当てられた優先度が、送信操作で考慮されます。Send operations take into consideration the priority levels that are assigned to conversations. 優先度が高いメッセージ交換のメッセージは、低い優先度が割り当てられたメッセージ交換のメッセージよりも先に送信されます。Messages from conversations that have high priority levels are sent before messages from conversations that are assigned low-priority levels.

OFFOFF
すべてのメッセージ交換が既定の優先度レベルを持つと見なして、送信操作が実行されます。Send operations run as if all conversations have the default priority level.

新しいダイアログや、送信待ちメッセージがないダイアログでは、HONOR_BROKER_PRIORITY オプションに対する変更が直ちに有効になります。Changes to the HONOR_BROKER_PRIORITY option take effect immediately for new dialogs or dialogs that have no messages waiting to be sent. ALTER DATABASE の実行時に送信されるメッセージがあるダイアログでは、ダイアログのメッセージの一部が送信されるまで、新しい設定が反映されません。Dialogs with messages to be sent when ALTER DATABASE is run won't pick up the new setting until some of the messages for the dialog are sent. すべてのダイアログで新しい設定が使用されるようになるまでの時間は、場合により大幅に異なります。The amount of time before all dialogs start using the new setting can vary considerably.

このプロパティの現在の設定は、sys.databases カタログ ビューの is_broker_priority_honored 列に表示されます。The current setting of this property is reported in the is_broker_priority_honored column in the sys.databases catalog view.

<snapshot_option> ::=<snapshot_option> ::=

トランザクション分離レベルを計算します。Calculates the transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION { ON | OFF }ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ONON
データベース レベルでのスナップショット オプションを有効にします。Enables Snapshot option at the database level. 有効にした場合、スナップショット分離を使用するトランザクションがなくても、DML ステートメントによって、行バージョンの生成が開始されます。When it's enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. このオプションを有効にすると、トランザクションで SNAPSHOT トランザクション分離レベルを指定できます。Once this option is enabled, transactions can specify the SNAPSHOT transaction isolation level. SNAPSHOT 分離レベルでトランザクションが実行されると、すべてのステートメントはトランザクション開始時のデータのスナップショットを参照します。When a transaction runs at the SNAPSHOT isolation level, all statements see a snapshot of data as it exists at the start of the transaction. SNAPSHOT 分離レベルで実行されているトランザクションが複数のデータベースのデータにアクセスする場合は、すべてのデータベースで ALLOW_SNAPSHOT_ISOLATION が ON に設定されている必要があります。ALLOW_SNAPSHOT_ISOLATION が OFF になっているデータベース内のテーブルにアクセスする場合は、トランザクション内の各ステートメントで、FROM 句内のすべての参照に対してロック ヒントを使用する必要があります。If a transaction running at the SNAPSHOT isolation level accesses data in multiple databases, either ALLOW_SNAPSHOT_ISOLATION must be set to ON in all the databases, or each statement in the transaction must use locking hints on any reference in a FROM clause to a table in a database where ALLOW_SNAPSHOT_ISOLATION is OFF.

OFFOFF
データベース レベルでのスナップショット オプションを無効にします。Turns off the Snapshot option at the database level. トランザクションでは、SNAPSHOT トランザクション分離レベルを指定できません。Transactions can't specify the SNAPSHOT transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION を新しい状態に (ON から OFF へ、または OFF から ON へ) 設定した場合、ALTER DATABASE は、データベース内にあるすべての既存のトランザクションがコミットされるまで、呼び出し元に制御を返しません。When you set ALLOW_SNAPSHOT_ISOLATION to a new state (from ON to OFF, or from OFF to ON), ALTER DATABASE doesn't return control to the caller until all existing transactions in the database are committed. データベースが既に ALTER DATABASE ステートメントで指定した状態にある場合には、制御は呼び出し元に直ちに返されます。If the database is already in the state specified in the ALTER DATABASE statement, control is returned to the caller immediately. ALTER DATABASE ステートメントがすぐに制御を返さない場合には、sys.dm_tran_active_snapshot_database_transactions を使用して、長時間実行されているトランザクションがあるかどうかを確認できます。If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. ALTER DATABASE ステートメントが取り消された場合、データベースは、ALTER DATABASE が開始された時点での状態に留まります。If the ALTER DATABASE statement is canceled, the database remains in the state it was in when ALTER DATABASE was started. sys.databases カタログ ビューに、データベース内のスナップショット分離トランザクションの状態が表示されます。The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. snapshot_isolation_state_desc = IN_TRANSITION_TO_ON の場合、ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF は 6 秒間待ってから、操作を再試行します。If snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF will pause six seconds and retry the operation.

データベースが OFFLINE の場合には、ALLOW_SNAPSHOT_ISOLATION の状態を変更できません。You can't change the state of ALLOW_SNAPSHOT_ISOLATION if the database is OFFLINE.

READ_ONLY のデータベースで ALLOW_SNAPSHOT_ISOLATION を設定すると、このデータベースが後に READ_WRITE に設定された場合でも、この設定が保持されます。If you set ALLOW_SNAPSHOT_ISOLATION in a READ_ONLY database, the setting will be kept if the database is later set to READ_WRITE.

master、model、msdb、および tempdb データベースでは、ALLOW_SNAPSHOT_ISOLATION 設定を変更できます。You can change the ALLOW_SNAPSHOT_ISOLATION settings for the master, model, msdb, and tempdb databases. tempdb でこの設定を変更すると、この設定は、データベース エンジンDatabase Engineのインスタンスが停止および再起動されるたびに保持されます。The setting is kept every time the instance of the データベース エンジンDatabase Engine is stopped and restarted if you change the setting for tempdb. model でこの設定を変更すると、この設定は、tempdb を除く新たに作成されたすべてのデータベースの既定値となります。If you change the setting for model, that setting becomes the default for any new databases that are created, except for tempdb.

master データベースと msdb データベースでは、このオプションは既定で ON になります。The option is ON by default for the master and msdb databases.

sys.databases カタログ ビューの snapshot_isolation_state 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the snapshot_isolation_state column in the sys.databases catalog view.

READ_COMMITTED_SNAPSHOT { ON | OFF }READ_COMMITTED_SNAPSHOT { ON | OFF }
ONON
データベース レベルでの Read Committed スナップショット オプションを有効にします。Enables Read-Committed Snapshot option at the database level. 有効にした場合、スナップショット分離を使用するトランザクションがなくても、DML ステートメントによって、行バージョンの生成が開始されます。When it's enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. このオプションを有効にすると、READ COMMITTED 分離レベルを指定しているトランザクションは、ロックではなく、行のバージョン管理を使用します。Once this option is enabled, the transactions specifying the read committed isolation level use row versioning instead of locking. トランザクションが READ COMMITTED 分離レベルで実行されている場合、すべてのステートメントは、ステートメントの開始時に存在していたデータのスナップショットを参照します。All statements see a snapshot of data as it exists at the start of the statement when a transaction runs at the READ COMMITTED isolation level.

OFFOFF
データベース レベルでの Read Committed スナップショット オプションを無効にします。Turns off Read-Committed Snapshot option at the database level. READ COMMITTED 分離レベルを指定しているトランザクションは、ロックを使用します。Transactions specifying the READ COMMITTED isolation level use locking.

READ_COMMITTED_SNAPSHOT を ON または OFF に設定するには、ALTER DATABASE コマンドを実行している接続以外にデータベースへのアクティブな接続が存在しないようにする必要があります。To set READ_COMMITTED_SNAPSHOT ON or OFF, there must be no active connections to the database except for the connection running the ALTER DATABASE command. データベースがシングル ユーザー モードになっている必要はありません。However, the database doesn't have to be in single-user mode. データベースが OFFLINE の場合には、このオプションの状態は変更できません。You can't change the state of this option when the database is OFFLINE.

READ_ONLY のデータベースで READ_COMMITTED_SNAPSHOT を設定すると、このデータベースが後で READ_WRITE に設定された場合でも、この設定が保持されます。If you set READ_COMMITTED_SNAPSHOT in a READ_ONLY database, the setting will be kept when the database is later set to READ_WRITE.

master、tempdb、または msdb システム データベースでは、READ_COMMITTED_SNAPSHOT を ON に設定することはできません。READ_COMMITTED_SNAPSHOT can't be turned ON for the master, tempdb, or msdb system databases. model でこの設定を変更すると、この設定は、tempdb を除く新たに作成されたすべてのデータベースの既定値となります。If you change the setting for model, that setting becomes the default for any new databases created, except for tempdb.

sys.databases カタログ ビューの is_read_committed_snapshot_on 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_read_committed_snapshot_on column in the sys.databases catalog view.

警告

DURABILITY = SCHEMA_ONLY でテーブルが作成される場合、READ_COMMITTED_SNAPSHOT がその後 ALTER DATABASE を使用して変更されると、テーブル内のデータは失われます。When a table is created with DURABILITY = SCHEMA_ONLY, and READ_COMMITTED_SNAPSHOT is subsequently changed using ALTER DATABASE, data in the table will be lost.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
適用対象: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2014 (12.x)SQL Server 2014 (12.x) through SQL Server 2017SQL Server 2017)

ONON
トランザクション分離レベルが SNAPSHOT より低い分離レベルに設定されている場合は、メモリ最適化テーブル上で解釈されたすべての Transact-SQLTransact-SQL 操作が SNAPSHOT 分離レベルで実行されます。When the transaction isolation level is set to any isolation level lower than SNAPSHOT, all interpreted Transact-SQLTransact-SQL operations on memory-optimized tables are run under SNAPSHOT isolation. SNAPSHOT よりも低い分離レベルの例として、READ COMMITTED、READ UNCOMMITTEDREAD があります。Examples of isolation levels lower than snapshot are READ COMMITTED or READ UNCOMMITTED. このような操作は、トランザクション分離レベルがセッション レベルで明示的に設定されているか、既定値が暗黙的に使用されるかに関係なく実行されます。These operations run whether the transaction isolation level is set explicitly at the session level, or the default is used implicitly.

OFFOFF
メモリ最適化テーブル上で解釈された Transact-SQLTransact-SQL 操作のトランザクション分離レベルは引き上げられません。Doesn't elevate the transaction isolation level for interpreted Transact-SQLTransact-SQL operations on memory-optimized tables.

データベースが OFFLINE の場合には、MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT の状態を変更できません。You can't change the state of MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT if the database is OFFLINE.

既定のオプションは OFF です。The default option is OFF.

sys.databases カタログ ビューの is_memory_optimized_elevate_to_snapshot_on 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on column in the sys.databases catalog view.

<sql_option> ::=<sql_option> ::=

ANSI 準拠のオプションをデータベース レベルで制御します。Controls the ANSI compliance options at the database level.

ANSI_NULL_DEFAULT { ON | OFF }: CREATE TABLE ステートメントまたは ALTER TABLE ステートメントで NULL を許可するかどうかが明示的に定義されていない場合に、列または CLR ユーザー定義型の既定値を NULL と NOT NULL のどちらにするかを指定します。ANSI_NULL_DEFAULT { ON | OFF } Determines the default value, NULL or NOT NULL, of a column or CLR user-defined type for which the nullability isn't explicitly defined in CREATE TABLE or ALTER TABLE statements. 制約によって定義された列は、この設定に関係なく制約のルールに従います。Columns that are defined with constraints follow constraint rules whatever this setting may be.

ONON
未定義の列の既定値は NULL です。The default value for an undefined column is NULL.

OFFOFF
未定義の列の既定値は NOT NULL です。The default value for an undefined column is NOT NULL.

SET ステートメントを使用した接続レベルの設定は、ANSI_NULL_DEFAULT に関するデータベースレベルの既定の設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_NULL_DEFAULT. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_NULL_DEFAULT を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULL_DEFAULT to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_NULL_DFLT_ON」をご覧ください。For more information, see SET ANSI_NULL_DFLT_ON.

ANSI 互換性を確保するために、データベース オプション ANSI_NULL_DEFAULT を ON に設定すると、データベースの既定値が NULL に変更されます。For ANSI compatibility, setting the database option ANSI_NULL_DEFAULT to ON changes the database default to NULL.

sys.databases カタログ ビューの is_ansi_null_default_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_null_default_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiNullDefault プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiNullDefault property of the DATABASEPROPERTYEX function.

ANSI_NULLS { ON | OFF }ANSI_NULLS { ON | OFF }
ONON
null 値との比較結果は、すべて UNKNOWN になります。All comparisons to a null value evaluate to UNKNOWN.

OFFOFF
UNICODE 以外の値と null 値の比較結果は、両方の値が NULL である場合には TRUE になります。Comparisons of non-UNICODE values to a null value evaluate to TRUE if both values are NULL.

重要

今後のバージョンの SQL ServerSQL Server では、ANSI_NULLS が常に ON になり、このオプションを明示的に OFF に設定するすべてのアプリケーションでエラーが発生します。In a future version of SQL ServerSQL Server, ANSI_NULLS will always be ON and any applications that explicitly set the option to OFF will produce an error. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

SET ステートメントを使用した接続レベルの設定は、ANSI_NULLS の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for ANSI_NULLS. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_NULLS を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULLS to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_NULLS」をご覧ください。For more information, see SET ANSI_NULLS.

重要

SET ANSI_NULLS は、計算列やインデックス付きビューのインデックスを作成または変更する場合にも、ON に設定する必要があります。SET ANSI_NULLS also must be set to ON when you create or make changes to indexes on computed columns or indexed views.

sys.databases カタログ ビューの is_ansi_nulls_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_nulls_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiNullsEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiNullsEnabled property of the DATABASEPROPERTYEX function.

ANSI_PADDING { ON | OFF }ANSI_PADDING { ON | OFF }
ONON
比較を行う前に、文字列が同じ長さになるようにパディングされます。Strings are padded to the same length before conversion. また、varchar または nvarchar データ型に挿入される前にも、同じ長さになるようにパディングされます。Also padded to the same length before inserting to a varchar or nvarchar data type.

OFFOFF
文字値の末尾にある空白を varchar 型または nvarchar 型の列に挿入します。Inserts trailing blanks in character values into varchar or nvarchar columns. varbinary 型の列に挿入されたバイナリ値の末尾にある 0 はそのまま残されます。Also leaves trailing zeros in binary values that are inserted into varbinary columns. 列の長さに合わせるためにパディングされることはありません。Values aren't padded to the length of the column.

OFF を指定した場合、この設定は新しい列の定義にのみ影響します。When OFF is specified, this setting affects only the definition of new columns.

重要

今後のバージョンの SQL ServerSQL Server では、ANSI_PADDING が常に ON になり、このオプションを明示的に OFF に設定するすべてのアプリケーションでエラーが発生します。In a future version of SQL ServerSQL Server, ANSI_PADDING will always be ON and any applications that explicitly set the option to OFF will produce an error. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature. ANSI_PADDING は常に ON に設定することをお勧めします。We recommend that you always set ANSI_PADDING to ON. 計算列やインデックス付きビューのインデックスを作成または操作するときには、ANSI_PADDING を ON に設定する必要があります。ANSI_PADDING must be ON when you create or manipulate indexes on computed columns or indexed views.

char(n) および binary(n) 列が NULL を許容する場合は、ANSI_PADDING を ON に設定すると、列の長さに合うようにパディングされます。char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. ANSI_PADDING を OFF に設定すると、末尾の空白および 0 は切り捨てられます。Trailing blanks and zeros are trimmed when ANSI_PADDING is OFF. char(n) および binary(n) 列が NULL を許容しない場合は、常に列の長さに合うようにパディングが行われます。char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.

SET ステートメントを使用した接続レベルの設定は、ANSI_PADDING に関するデータベースレベルの既定の設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_PADDING. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_PADDING を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_PADDING to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_PADDING」をご覧ください。For more information, see SET ANSI_PADDING.

sys.databases カタログ ビューの is_ansi_padding_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_padding_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiPaddingEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiPaddingEnabled property of the DATABASEPROPERTYEX function.

ANSI_WARNINGS { ON | OFF }ANSI_WARNINGS { ON | OFF }
ONON
0 除算などの状態になったときに、エラーまたは警告が発行されます。Errors or warnings are issued when conditions such as divide-by-zero occur. 集計関数に NULL 値が出現した場合にも、エラーと警告が発行されます。Errors and warnings are also issued when null values appear in aggregate functions.

OFFOFF
0 除算などの条件が発生しても、警告は発行されず、NULL 値が返されます。No warnings are raised and null values are returned when conditions such as divide-by-zero occur.

重要

SET ANSI_WARNINGS は、計算列やインデックス付きビューのインデックスを作成または変更する場合には、ON に設定する必要があります。SET ANSI_WARNINGS must be set to ON when you create or make changes to indexes on computed columns or indexed views.

SET ステートメントを使用した接続レベルの設定は、ANSI_WARNINGS の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for ANSI_WARNINGS. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_WARNINGS を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_WARNINGS to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_WARNINGS」をご覧ください。For more information, see SET ANSI_WARNINGS.

sys.databases カタログ ビューの is_ansi_warnings_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_warnings_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiWarningsEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiWarningsEnabled property of the DATABASEPROPERTYEX function.

ARITHABORT { ON | OFF }ARITHABORT { ON | OFF }
ONON
クエリ実行中にオーバーフロー エラーまたは 0 除算エラーが発生した場合に、クエリを終了します。A query is ended when an overflow or divide-by-zero error occurs during query execution.

OFFOFF
このようなエラーのいずれかが発生した場合に警告メッセージが表示されます。A warning message is displayed when one of these errors occurs. 警告が表示された場合でも、クエリ、バッチ、またはトランザクションは、エラーが発生しなかったかのように処理を続行します。The query, batch, or transaction continues to process as if no error occurred even if a warning is displayed.

重要

SET ARITHABORT は、計算列やインデックス付きビューのインデックスを作成または変更する場合には、ON に設定する必要があります。SET ARITHABORT must be set to ON when you create or make changes to indexes on computed columns or indexed views.

sys.databases カタログ ビューの is_arithabort_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_arithabort_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsArithmeticAbortEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsArithmeticAbortEnabled property of the DATABASEPROPERTYEX function.

COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }

詳しくは、「ALTER DATABASE 互換性レベル」をご覧ください。For more information, see ALTER DATABASE Compatibility Level.

CONCAT_NULL_YIELDS_NULL { ON | OFF }CONCAT_NULL_YIELDS_NULL { ON | OFF }
ONON
オペランドのいずれかが NULL の場合、連結操作の結果は NULL になります。The result of a concatenation operation is NULL when either operand is NULL. たとえば、文字列 "This is" と NULL を連結すると、"This is" という値ではなく NULL という値が返されます。For example, concatenating the character string "This is" and NULL returns the NULL value instead of the "This is" value.

OFFOFF
null 値は空の文字列として扱われます。The null value is treated as an empty character string.

[重要] CONCAT_NULL_YIELDS_NULL は、計算列やインデックス付きビューのインデックスを作成または変更する場合には、ON に設定する必要があります。[IMPORTANT] CONCAT_NULL_YIELDS_NULL must be set to ON when you create or make changes to indexes on computed columns or indexed views.

重要

今後のバージョンの SQL ServerSQL Server では、CONCAT_NULL_YIELDS_NULL が常に ON になり、このオプションを明示的に OFF に設定するすべてのアプリケーションでエラーが発生します。In upcoming versions of SQL ServerSQL Server, CONCAT_NULL_YIELDS_NULL will always be ON, and any applications that explicitly set the option to OFF will trigger an error. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

SET ステートメントを使用した接続レベルの設定は、CONCAT_NULL_YIELDS_NULL の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for CONCAT_NULL_YIELDS_NULL. 既定では、ODBC クライアントと OLE DB クライアントは、SQL ServerSQL Server のインスタンスに接続するときに、セッションの CONCAT_NULL_YIELDS_NULL を ON に設定する接続レベルの SET ステートメントを実行します。By default, ODBC and OLE DB clients issue a connection-level SET statement setting CONCAT_NULL_YIELDS_NULL to ON for the session when connecting to an instance of SQL ServerSQL Server. 詳しくは、「SET CONCAT_NULL_YIELDS_NULL」をご覧ください。For more information, see SET CONCAT_NULL_YIELDS_NULL.

sys.databases カタログ ビューの is_concat_null_yields_null_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_concat_null_yields_null_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsNullConcat プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsNullConcat property of the DATABASEPROPERTYEX function.

QUOTED_IDENTIFIER { ON | OFF }QUOTED_IDENTIFIER { ON | OFF }
ONON
識別子を囲む二重引用符を使用できます。Double quotation marks can be used to enclose delimited identifiers.

二重引用符で囲まれた文字列はすべて、オブジェクト識別子として解釈されます。All strings delimited by double quotation marks are interpreted as object identifiers. 引用符で囲まれた識別子は、Transact-SQLTransact-SQL の識別子の規則に従う必要はありません。Quoted identifiers don't have to follow the Transact-SQLTransact-SQL rules for identifiers. これはキーワードにすることができます。また、Transact-SQLTransact-SQL 識別子では許可されない文字を含めることができます。They can be keywords and can include characters that aren't allowed in Transact-SQLTransact-SQL identifiers. 単一引用符 (') がリテラル文字列の一部になっている場合は、それを二重引用符 (") で表記できます。If a single quotation mark (') is part of the literal string, it can be represented by double quotation marks (").

OFFOFF
識別子を引用符で囲むことができず、Transact-SQLTransact-SQL の識別子に関するすべての規則に従う必要があります。Identifiers can't be in quotation marks and must follow all Transact-SQLTransact-SQL rules for identifiers. リテラルは単一引用符と二重引用符のどちらで区切ることもできます。Literals can be delimited by either single or double quotation marks.

SQL ServerSQL Server では識別子を角かっこ ([ ]) で囲むこともできます。also allows for identifiers to be delimited by square brackets ([ ]). 角かっこで囲まれた識別子は、QUOTED_IDENTIFIER 設定に関係なくいつでも使用できます。Bracketed identifiers can always be used, whatever the QUOTED_IDENTIFIER setting is. 詳細については、「データベース識別子」を参照してください。For more information, see Database Identifiers.

このオプションは、テーブルの作成時に、常に ON としてテーブルのメタデータに格納されます。When a table is created, the QUOTED IDENTIFIER option is always stored as ON in the metadata of the table. このオプションは、テーブルの作成時にオプションが OFF に設定された場合でも格納されます。The option is stored even if the option is set to OFF when the table is created.

SET ステートメントを使用した接続レベルの設定は、QUOTED_IDENTIFIER の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for QUOTED_IDENTIFIER. 既定では、ODBC クライアントと OLE DB QUOTED_IDENTIFIER を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting QUOTED_IDENTIFIER to ON, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET QUOTED_IDENTIFIER」をご覧ください。For more information, see SET QUOTED_IDENTIFIER.

sys.databases カタログ ビューの is_quoted_identifier_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_quoted_identifier_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsQuotedIdentifiersEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsQuotedIdentifiersEnabled property of the DATABASEPROPERTYEX function.

NUMERIC_ROUNDABORT { ON | OFF }NUMERIC_ROUNDABORT { ON | OFF }
ONON
式で有効桁数の損失が発生する場合にエラーが生成されます。An error is generated when loss of precision occurs in an expression.

OFFOFF
有効桁数の損失が発生してもエラー メッセージが生成されず、結果を格納する列または変数の有効桁数に丸められます。Loss of precision doesn't generate an error message, and the result is rounded to the precision of the column or variable storing the result.

重要

NUMERIC_ROUNDABORT は、計算列やインデックス付きビューのインデックスを作成または変更する場合は、OFF に設定する必要があります。NUMERIC_ROUNDABORT must be set to OFF when you create or make changes to indexes on computed columns or indexed views.

sys.databases カタログ ビューの is_numeric_roundabort_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_numeric_roundabort_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsNumericRoundAbortEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsNumericRoundAbortEnabled property of the DATABASEPROPERTYEX function.

RECURSIVE_TRIGGERS { ON | OFF }RECURSIVE_TRIGGERS { ON | OFF }
ONON
AFTER トリガーの再帰呼び出しを実行できるようになります。Recursive firing of AFTER triggers is allowed.

OFFOFF
sys.databases カタログ ビューの is_recursive_triggers_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsRecursiveTriggersEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

注意

RECURSIVE_TRIGGERS に OFF に設定されている場合、直接再帰呼び出しのみが回避されます。Only direct recursion is prevented when RECURSIVE_TRIGGERS is set to OFF. 間接再帰呼び出しを無効にするには、nested triggers サーバー オプションを 0 に設定する必要があります。To disable indirect recursion, you must also set the nested triggers server option to 0.

sys.databases カタログ ビューの is_recursive_triggers_on 列または DATABASEPROPERTYEX 関数の IsRecursiveTriggersEnabled プロパティを調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view or the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

<target_recovery_time_option> ::= <target_recovery_time_option> ::=
適用対象: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) から SQL Server 2017SQL Server 2017まで)Applies to: SQL ServerSQL Server (SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017)

間接的なチェックポイントの生成頻度をデータベースごとに指定します。Specifies the frequency of indirect checkpoints on a per-database basis. SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降、新しいデータベースに対する既定値は 1 分であり、これはデータベースが間接チェックポイントを使用することを示します。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates database will use indirect checkpoints. 旧バージョンの既定値は 0 です。これは、データベースが自動チェックポイントを使用することを示し、その頻度はサーバー インスタンスの復旧間隔の設定によって異なります。For older versions the default is 0, which indicates that the database will use automatic checkpoints, whose frequency depends on the recovery interval setting of the server instance. MicrosoftMicrosoft では、ほとんどのシステムに対して 1 分をお勧めします。recommends 1 minute for most systems.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
target_recovery_time target_recovery_time
クラッシュが発生した場合、指定したデータベースが復旧に要する時間の上限を指定します。Specifies the maximum bound on the time to recover the specified database in the event of a crash. target_recovery_timeint 型です。target_recovery_time is type int.

SECONDSSECONDS
target_recovery_time が秒単位で表されていることを示します。Indicates that target_recovery_time is expressed as the number of seconds.

MINUTESMINUTES
target_recovery_time が分単位で表されていることを示します。Indicates that target_recovery_time is expressed as the number of minutes.

間接的なチェックポイントについて詳しくは、「データベース チェックポイント」をご覧ください。For more information about indirect checkpoints, see Database Checkpoints.

WITH <termination> ::=WITH <termination> ::=

データベースの状態が変更されるときに、未完了のトランザクションをいつロールバックするかを指定します。Specifies when to roll back incomplete transactions when the database is transitioned from one state to another. データベースがロックされている場合に終了句を省略すると、ALTER DATABASE ステートメントが無限に待機します。If the termination clause is omitted, the ALTER DATABASE statement waits indefinitely if there's any lock on the database. 指定できる終了句は 1 つのみであり、SET 句の後に指定します。Only one termination clause can be specified, and it follows the SET clauses.

注意

すべてのデータベース オプションで WITH <termination> 句が使用できるわけではありません。Not all database options use the WITH <termination> clause. 詳細については、この記事の「解説」セクションの「オプションの設定」にある表をご覧ください。For more information, see the table under "Setting options of the "Remarks" section of this article.

ROLLBACK AFTER number [SECONDS] | ROLLBACK IMMEDIATEROLLBACK AFTER number [SECONDS] | ROLLBACK IMMEDIATE

指定した秒数の後、または直ちにロールバックするかどうかを指定します。Specifies whether to roll back after the specified number of seconds or immediately. numberint 型です。number is type int.

NO_WAITNO_WAIT
要求されたデータベースの状態またはオプションの変更がすぐに完了しない場合に、要求が失敗するように指定します。Specifies that the request will fail if the requested database state or option change can't complete immediately. すぐに完了とは、トランザクションが自身のコミットまたはロール バック処理を待機しないことを意味します。Completing immediately means not waiting for transactions to commit or roll back on their own.

オプションの設定Setting options

データベース オプションの現在の設定を取得するには、sys.databases カタログ ビューまたは DATABASEPROPERTYEX を使用します。To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX

データベース オプションを設定すると、新しい設定は直ちに有効になります。After you set a database option, the new setting takes effect immediately.

新しく作成されるすべてのデータベースについて、任意のデータベース オプションの既定値を変更できます。You can change the default values for any one of the database options for all newly created databases. これを実行するには、モデル データベース内の適切なデータベース オプションを変更します。To do so, change the appropriate database option in the model database.

データベース オプションの中には、WITH <termination> 句を使用しないものや、他のオプションと組み合わせて指定できないものもあります。Not all database options use the WITH <termination> clause or can be specified in combination with other options. 次の表に、このようなオプションと、それらのオプションと終了状態を示します。The following table lists these options and their option and termination status.

オプションのカテゴリOptions category 他のオプションとの組み合わせの可否Can be specified with other options WITH <termination> 句の使用の可否Can use the WITH <termination> clause
<db_state_option><db_state_option> はいYes はいYes
<db_user_access_option><db_user_access_option> はいYes はいYes
<db_update_option><db_update_option> はいYes はいYes
<delayed_durability_option><delayed_durability_option> はいYes はいYes
<external_access_option><external_access_option> はいYes いいえNo
<cursor_option><cursor_option> はいYes いいえNo
<auto_option><auto_option> はいYes いいえNo
<sql_option><sql_option> はいYes いいえNo
<recovery_option><recovery_option> はいYes いいえNo
<target_recovery_time_option><target_recovery_time_option> いいえNo はいYes
<database_mirroring_option><database_mirroring_option> いいえNo いいえNo
ALLOW_SNAPSHOT_ISOLATIONALLOW_SNAPSHOT_ISOLATION いいえNo いいえNo
READ_COMMITTED_SNAPSHOTREAD_COMMITTED_SNAPSHOT いいえNo はいYes
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOTMEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT はいYes はいYes
<service_broker_option><service_broker_option> はいYes いいえNo
DATE_CORRELATION_OPTIMIZATIONDATE_CORRELATION_OPTIMIZATION はいYes はいYes
<parameterization_option><parameterization_option> はいYes はいYes
<change_tracking_option><change_tracking_option> はいYes はいYes
<db_encryption_option><db_encryption_option> はいYes いいえNo

SQL ServerSQL Server のインスタンスのプラン キャッシュは、次のいずれかのオプションを設定することにより消去されます。The plan cache for the instance of SQL ServerSQL Server is cleared by setting one of the following options:

OFFLINEOFFLINE READ_WRITEREAD_WRITE
ONLINEONLINE MODIFY FILEGROUP DEFAULTMODIFY FILEGROUP DEFAULT
MODIFY_NAMEMODIFY_NAME MODIFY FILEGROUP READ_WRITEMODIFY FILEGROUP READ_WRITE
COLLATECOLLATE MODIFY FILEGROUP READ_ONLYMODIFY FILEGROUP READ_ONLY
READ_ONLYREAD_ONLY

プラン キャッシュは、次のシナリオでもフラッシュされます。The plan cache is also flushed in the following scenarios.

  • AUTO_CLOSE データベース オプションが ON に設定されている。A database has the AUTO_CLOSE database option set to ON. データベースを参照 (または使用) するユーザー接続が 1 つも存在しない場合、バックグラウンド タスクがデータベースを自動的に閉じてシャットダウンすることを試みます。When no user connection references or uses the database, the background task tries to close and shut down the database automatically.
  • 既定のオプションが設定されているデータベースに対して複数のクエリを実行した。You run several queries against a database that has default options. データベースはその後削除されます。Then, the database is dropped.
  • ソース データベースのデータベース スナップショットが削除された。A database snapshot for a source database is dropped.
  • データベースのトランザクション ログを正常に再構築した。You successfully rebuild the transaction log for a database.
  • データベースのバックアップを復元した。You restore a database backup.
  • データベースをデタッチした。You detach a database.

プラン キャッシュが消去されると、後続のすべての実行プランが再コンパイルされ、場合によっては、クエリ パフォーマンスが一時的に急激に低下します。Clearing the plan cache causes a recompilation of all subsequent execution plans and can cause a sudden, temporary decrease in query performance. プラン キャッシュ内のキャッシュストアが消去されるたびに、"SQL ServerSQL Server は、一部のデータベース メンテナンス操作または再構成操作により、'%s' キャッシュストア (プラン キャッシュの一部) のキャッシュストア フラッシュを %d 個検出しました" という情報メッセージが SQL ServerSQL Server エラー ログに含まれます。For each cleared cache store in the plan cache, the SQL ServerSQL Server error log contains the following informational message: " SQL ServerSQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations". このメッセージは、5 分以内にキャッシュがフラッシュされる限り、5 分間隔でログに記録されます。This message is logged every five minutes as long as the cache is flushed within that time interval.

使用例Examples

A.A. データベースのオプションを設定するSetting options on a database

次の例では、AdventureWorks2012AdventureWorks2012 サンプル データベースに対して、復旧モデルおよびデータ ページ検証のオプションを設定します。The following example sets the recovery model and data page verification options for the AdventureWorks2012AdventureWorks2012 sample database.

USE master;
GO
ALTER DATABASE [database_name]
SET RECOVERY FULL PAGE_VERIFY CHECKSUM;
GO

B.B. データベースを READ_ONLY に設定するSetting the database to READ_ONLY

データベースまたはファイル グループの状態を READ_ONLY または READ_WRITE に変更するには、データベースに対する排他的アクセスが必要です。Changing the state of a database or file group to READ_ONLY or READ_WRITE requires exclusive access to the database. 次の例では、排他的アクセスを取得するために、データベースを SINGLE_USER モードに設定します。The following example sets the database to SINGLE_USER mode to obtain exclusive access. 次に、AdventureWorks2012AdventureWorks2012 データベースの状態を READ_ONLY に設定し、データベースへのアクセス権をすべてのユーザーに戻します。The example then sets the state of the AdventureWorks2012AdventureWorks2012 database to READ_ONLY and returns access to the database to all users.

注意

この例では、最初の WITH ROLLBACK IMMEDIATE ステートメントで、終了オプション ALTER DATABASE を使用しています。This example uses the termination option WITH ROLLBACK IMMEDIATE in the first ALTER DATABASE statement. すべての未完了のトランザクションはロールバックされ、AdventureWorks2012AdventureWorks2012 データベースへの他のすべての接続は直ちに接続解除されます。All incomplete transactions will be rolled back and any other connections to the AdventureWorks2012AdventureWorks2012 database will be immediately disconnected.

USE master;
GO
ALTER DATABASE [database_name]
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE [database_name]
SET READ_ONLY
GO
ALTER DATABASE [database_name]
SET MULTI_USER;
GO

C.C. データベースの SNAPSHOT 分離を有効にするEnabling snapshot isolation on a database

次の例では、AdventureWorks2012AdventureWorks2012 データベースに対する SNAPSHOT 分離フレームワーク オプションを有効にします。The following example enables the snapshot isolation framework option for the AdventureWorks2012AdventureWorks2012 database.

USE [database_name];
USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO

結果セットは、SNAPSHOT 分離フレームワークが有効であることを示しています。The result set shows that the snapshot isolation framework is enabled.

NAMEname snapshot_isolation_statesnapshot_isolation_state descriptiondescription
[database_name][database_name] 11 ONON

D.D. 変更の追跡を有効化、変更、および無効化するEnabling, modifying, and disabling change tracking

次の例では、AdventureWorks2012AdventureWorks2012 データベースで変更の追跡を有効にし、保有期間を 2 日に設定します。The following example enables change tracking for the AdventureWorks2012AdventureWorks2012 database and sets the retention period to 2 days.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

次の例では、保有期間を 3 日に変更する方法を示します。The following example shows how to change the retention period to 3 days.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

次の例では、AdventureWorks2012AdventureWorks2012 データベースで変更の追跡を無効にする方法を示します。The following example shows how to disable change tracking for the AdventureWorks2012AdventureWorks2012 database.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

E.E. クエリのストアを有効にするEnabling the Query Store

適用対象: SQL ServerSQL Server (SQL Server 2016 (13.x)SQL Server 2016 (13.x) から SQL Server 2017SQL Server 2017 まで)Applies to: SQL ServerSQL Server ( SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

次の例では、クエリ ストアを有効にし、そのパラメーターを構成します。The following example enables the Query Store and configures its parameters.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      QUERY_CAPTURE_MODE = AUTO,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60
    );

F.F. 待機統計を使用してクエリ ストアを有効にするEnabling the Query Store with wait statistics

適用対象:SQL ServerSQL Server (SQL Server 2017 (14.x)SQL Server 2017 (14.x) 以降)Applies to: SQL ServerSQL Server (Starting with SQL Server 2017 (14.x)SQL Server 2017 (14.x))

次の例では、クエリ ストアを有効にし、そのパラメーターを構成します。The following example enables the Query Store and configures its parameters.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON,
    );

G.G. カスタム キャプチャ ポリシー オプションを使用してクエリ ストアを有効にするEnabling the Query Store with custom capture policy options

適用対象:SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x) 以降)Applies to: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x))

次の例では、クエリ ストアを有効にし、そのパラメーターを構成します。The following example enables the Query Store and configures its parameters.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
    (
      OPERATION_MODE = READ_WRITE,
      CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 ),
      DATA_FLUSH_INTERVAL_SECONDS = 900,
      MAX_STORAGE_SIZE_MB = 1024,
      INTERVAL_LENGTH_MINUTES = 60,
      SIZE_BASED_CLEANUP_MODE = AUTO,
      MAX_PLANS_PER_QUERY = 200,
      WAIT_STATS_CAPTURE_MODE = ON,
      QUERY_CAPTURE_MODE = CUSTOM,
      QUERY_CAPTURE_POLICY = (
        STALE_CAPTURE_POLICY_THRESHOLD = 24 HOURS,
        EXECUTION_COUNT = 30,
        TOTAL_COMPILE_CPU_TIME_MS = 1000,
        TOTAL_EXECUTION_CPU_TIME_MS = 100
      )
    );

参照See Also

SQL ServerSQL Server * SQL Database
単一データベース/エラスティック プール*
 
* SQL Database
single database/elastic pool *
 
SQL Database
マネージド インスタンス
SQL Database
managed instance
SQL Data
Warehouse
SQL Data
Warehouse

 

Azure SQL Database 単一データベース/エラスティック プールAzure SQL Database single database/elastic pool

互換性レベルは SET のオプションですが、「ALTER DATABASE 互換性レベル」で説明されています。Compatibility levels are SET options but are described in ALTER DATABASE Compatibility Level.

注意

多くのデータベース設定オプションは、SET ステートメントを使用して現在のセッション用に構成できます。これらは多くの場合、接続するアプリケーションによって構成されます。Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. セッション レベルの SET オプションは、ALTER DATABASE SET の値をオーバーライドします。Session-level set options override the ALTER DATABASE SET values. 次のセクションで説明されているデータベース オプションは、セッション用に設定できる値であり、他の SET オプションの値は明示的に指定されていません。The database options described in the following sections are values that can be set for sessions that don't explicitly provide other set option values.

構文Syntax

ALTER DATABASE { database_name | Current }
SET
{
    <option_spec> [ ,...n ] [ WITH <termination> ]
}
;

<option_spec> ::=
{
    <auto_option>
  | <automatic_tuning_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <db_update_option>
  | <db_user_access_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;
<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }
  | AUTOMATIC_TUNING ( CREATE_INDEX = { DEFAULT | ON | OFF } )
  | AUTOMATIC_TUNING ( DROP_INDEX = { DEFAULT | ON | OFF } )
  | AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF } )
}

<change_tracking_option> ::=
{
  CHANGE_TRACKING
   {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
   }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}

<db_encryption_option> ::=
  ENCRYPTION { ON | OFF }

<db_update_option> ::=
  { READ_ONLY | READ_WRITE }

<db_user_access_option> ::=
  { RESTRICTED_USER | MULTI_USER }

<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<parameterization_option> ::=
  PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
  QUERY_STORE
  {
    = OFF
    | = ON [ ( <query_store_option_list> [,... n] ) ]
    | ( < query_store_option_list> [,... n] )
    | CLEAR [ ALL ]
  }
}

<query_store_option_list> ::=
{
  OPERATION_MODE = { READ_WRITE | READ_ONLY }
  | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
  | DATA_FLUSH_INTERVAL_SECONDS = number
  | MAX_STORAGE_SIZE_MB = number
  | INTERVAL_LENGTH_MINUTES = number
  | SIZE_BASED_CLEANUP_MODE = [ AUTO | OFF ]
  | QUERY_CAPTURE_MODE = [ ALL | AUTO | NONE ]
  | MAX_PLANS_PER_QUERY = number
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT {ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT {ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<termination>::=
{
    ROLLBACK AFTER integer [ SECONDS ]
  | ROLLBACK IMMEDIATE
  | NO_WAIT
}

<temporal_history_retention>::=TEMPORAL_HISTORY_RETENTION { ON | OFF }

引数Arguments

database_name database_name
変更するデータベースの名前です。Is the name of the database to be modified.

CURRENTCURRENT
CURRENT を指定すると、現在のデータベースでアクションが実行されます。CURRENT runs the action in the current database. CURRENT は、すべてのコンテキスト内のすべてのオプションでサポートされるわけではありません。CURRENT isn't supported for all options in all contexts. CURRENT でエラーが発生した場合は、データベース名を指定してください。If CURRENT fails, provide the database name.

<auto_option> ::=<auto_option> ::=

自動オプションを制御します。Controls automatic options.

AUTO_CREATE_STATISTICS { ON | OFF }AUTO_CREATE_STATISTICS { ON | OFF }
ONON
クエリ プランを改善してクエリのパフォーマンスを向上させるために、クエリ オプティマイザーが必要に応じてクエリ述語内の列に対して 1 列ずつ統計を作成します。Query Optimizer creates statistics on single columns in query predicates, as necessary, to improve query plans and query performance. これらの 1 列ずつの統計は、クエリ オプティマイザーがクエリをコンパイルする場合に作成されます。These single-column statistics are created when Query Optimizer compiles queries. 1 列ずつの統計は、まだ既存の統計オブジェクトの最初の列になっていない列についてのみ作成されます。The single-column statistics are created only on columns that are not already the first column of an existing statistics object.

既定値は ON です。The default is ON. ほとんどのデータベースで既定の設定を使用することをお勧めします。We recommend that you use the default setting for most databases.

OFFOFF
クエリ オプティマイザーがクエリをコンパイルするときにクエリ述語内の列の 1 列ずつの統計が作成されません。Query Optimizer doesn't create statistics on single columns in query predicates when it's compiling queries. このオプションを OFF に設定すると、最適ではないクエリ プランが作成されて、クエリのパフォーマンスが低下することがあります。Setting this option to OFF can cause suboptimal query plans and degraded query performance.

sys.databases カタログ ビューの is_auto_create_stats_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_create_stats_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoCreateStatistics プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoCreateStatistics property of the DATABASEPROPERTYEX function.

詳細については、「統計」の「統計オプション」セクションを参照してください。For more information, see the "Statistics options" section in Statistics.

INCREMENTAL = ON | OFF INCREMENTAL = ON | OFF
AUTO_CREATE_STATISTICS を ON に設定し、INCREMENTAL を ON に設定します。Set AUTO_CREATE_STATISTICS to ON, and set INCREMENTAL to ON. 増分統計がサポートされている場合、この設定で、自動的に作成される統計情報は、常に増分として作成されます。This setting creates automatically created stats as incremental whenever incremental stats are supported. 既定値は OFF です。The default value is OFF. 詳しくは、「CREATE STATISTICS」をご覧ください。For more information, see CREATE STATISTICS.

AUTO_SHRINK { ON | OFF }AUTO_SHRINK { ON | OFF }
ONON
データベース ファイルを定期的な圧縮処理の対象とします。The database files are candidates for periodic shrinking.

データ ファイルとログ ファイルの両方を、自動的に圧縮できます。Both data file and log files can be automatically shrunk. AUTO_SHRINK では、データベースを単純復旧モデルに設定している場合、またはログをバックアップしている場合にのみ、トランザクション ログのサイズが圧縮されます。AUTO_SHRINK reduces the size of the transaction log only if you set the database to SIMPLE recovery model or if you back up the log. OFF: 未使用領域の定期チェックの際に、データベース ファイルは自動的に圧縮されません。When set to OFF, the database files aren't automatically shrunk during periodic checks for unused space.

AUTO_SHRINK オプションを使用すると、ファイル領域の 25% を超える領域が未使用の場合にファイルが圧縮されます。The AUTO_SHRINK option causes files to be shrunk when more than 25 percent of the file contains unused space. このオプションを指定すると、ファイルは 2 つのサイズのいずれかまで縮小されます。The option causes the file to shrink to one of two sizes. 次のいずれか大きい方に縮小されます。It shrinks to whichever is larger:

  • ファイルの 25% が未使用領域であるサイズThe size where 25 percent of the file is unused space
  • ファイルが作成されたときのサイズThe size of the file when it was created

読み取り専用データベースは圧縮できません。You can't shrink a read-only database.

OFFOFF
データベース ファイルは、未使用領域の定期的なチェックの際に、自動的に圧縮されません。The database files are not automatically shrunk during periodic checks for unused space.

sys.databases カタログ ビューの is_auto_shrink_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_shrink_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoShrink プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoShrink property of the DATABASEPROPERTYEX function.

注意

AUTO_SHRINK オプションは、包含データベースでは使用できません。The AUTO_SHRINK option isn't available in a contained database.

AUTO_UPDATE_STATISTICS { ON | OFF }AUTO_UPDATE_STATISTICS { ON | OFF }
ONON
クエリで使用される場合、および統計が古くなっている可能性がある場合に、クエリ オプティマイザーによって更新されるように指定します。Specifies that Query Optimizer updates statistics when they're used by a query and when they might be out-of-date. 挿入、更新、削除、またはマージの各操作によってテーブルまたはインデックス付きビューのデータの分布が変わると、統計は古くなったと判断されます。Statistics become out-of-date after insert, update, delete, or merge operations change the data distribution in the table or indexed view. クエリ オプティマイザーでは、統計が前回更新されてから発生したデータ変更の数をカウントし、その変更の数をしきい値と比較することで、統計が古くなっている可能性がないかを判断します。Query Optimizer determines when statistics might be out-of-date by counting the number of data modifications since the last statistics update and comparing the number of modifications to a threshold. このしきい値は、テーブルまたはインデックス付きビューの行数に基づいて決められます。The threshold is based on the number of rows in the table or indexed view.

クエリ オプティマイザーによる古い統計の確認は、クエリをコンパイルする前と、キャッシュされたクエリ プランを実行する前に行われます。Query Optimizer checks for out-of-date statistics before it compiles a query and runs a cached query plan. クエリ オプティマイザーでは、古くなっている可能性がある統計を判断するため、クエリ述語内の列、テーブル、インデックス付きビューが使用されます。Query Optimizer uses the columns, tables, and indexed views in the query predicate to determine which statistics might be out-of-date. この情報は、クエリがコンパイルされる前にクエリ オプティマイザーによって判断されます。Query Optimizer determines this information before it compiles a query. キャッシュされたクエリ プランを実行する前は、データベース エンジンDatabase Engine で、クエリ プランが最新の統計を参照しているかどうかが確認されます。Before running a cached query plan, the データベース エンジンDatabase Engine verifies that the query plan references up-to-date statistics.

AUTO_UPDATE_STATISTICS オプションは、インデックスに対して作成された統計、クエリ述語内の列に対して 1 列ずつ作成された統計、および CREATE STATISTICS ステートメントを使用して作成された統計に適用されます。The AUTO_UPDATE_STATISTICS option applies to statistics created for indexes, single-columns in query predicates, and statistics that are created by using the CREATE STATISTICS statement. また、フィルター選択された統計情報にも適用されます。This option also applies to filtered statistics.

既定値は ON です。The default is ON. ほとんどのデータベースで既定の設定を使用することをお勧めします。We recommend that you use the default setting for most databases.

統計を同期的に更新するか非同期的に更新するかを指定するには、AUTO_UPDATE_STATISTICS_ASYNC オプションを使用します。Use the AUTO_UPDATE_STATISTICS_ASYNC option to specify whether the statistics are updated synchronously or asynchronously.

OFFOFF
統計がクエリで使用されるときに、クエリ オプティマイザーによって統計が更新されないことを指定します。Specifies that Query Optimizer doesn't update statistics when they're used by a query. また、統計が古くなっている可能性がある場合は、クエリオプティマイザーによって更新されません。Query Optimizer also doesn't update statistics when they might be out-of-date. このオプションを OFF に設定すると、最適ではないクエリ プランが作成されて、クエリのパフォーマンスが低下することがあります。Setting this option to OFF can cause suboptimal query plans and degraded query performance.

sys.databases カタログ ビューの is_auto_update_stats_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_update_stats_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoUpdateStatistics プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoUpdateStatistics property of the DATABASEPROPERTYEX function.

詳細については、「統計」の「統計オプション」セクションを参照してください。For more information, see the "Statistics options" section in Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ONON
AUTO_UPDATE_STATISTICS オプションの統計の更新を非同期更新にするように指定します。Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are asynchronous. クエリ オプティマイザーでは、統計の更新が完了するのを待たずにクエリをコンパイルします。Query Optimizer doesn't wait for statistics updates to complete before it compiles queries.

AUTO_UPDATE_STATISTICS が ON に設定されていなければ、このオプションを ON に設定しても、効果はありません。Setting this option to ON has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

既定では、AUTO_UPDATE_STATISTICS_ASYNC オプションは OFF に設定されており、クエリ オプティマイザーによる統計は同期更新となります。By default, the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF, and Query Optimizer updates statistics synchronously.

OFFOFF
AUTO_UPDATE_STATISTICS オプションの統計の更新を同期更新にするように指定します。Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are synchronous. クエリ オプティマイザーでは、統計の更新が完了するのを待ってからクエリをコンパイルします。Query Optimizer waits for statistics updates to complete before it compiles queries.

AUTO_UPDATE_STATISTICS が ON に設定されていなければ、このオプションを OFF に設定しても、効果はありません。Setting this option to OFF has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

sys.databases カタログ ビューの is_auto_update_stats_async_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_update_stats_async_on column in the sys.databases catalog view.

統計の同期更新と非同期更新をそれぞれどのような場合に使用するのかについては、「統計」の「統計オプション」セクションを参照してください。For more information that describes when to use synchronous or asynchronous statistics updates, see the "Statistics options" section in Statistics.

<automatic_tuning_option> ::= <automatic_tuning_option> ::=
適用対象: SQL Server 2017 (14.x)SQL Server 2017 (14.x)Applies to: SQL Server 2017 (14.x)SQL Server 2017 (14.x)

自動チューニングに関する自動オプションを制御します。Controls automatic options for Automatic tuning.

AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }AUTOMATIC_TUNING = { AUTO | INHERIT | CUSTOM }
AUTOAUTO
自動チューニングの値を AUTO に設定すると、自動チューニングに Azure 構成の既定値が適用されます。Setting the Automatic tuning value to AUTO will apply Azure configuration defaults for Automatic tuning.

INHERITINHERIT
INHERIT 値を使用すると、親サーバーから既定の構成が継承されます。Using the INHERIT value inherits the default configuration from the parent server. 親サーバー上の自動調整の構成をカスタマイズする必要があり、これらのカスタム設定を継承 (INHERIT) する、このようなサーバー上にデータベースがすべて存在する場合に特に便利です。This is especially useful if you would like to customize Automatic tuning configuration on a parent server, and have all the databases on such server INHERIT these custom settings. 継承が機能するために、3 つの個別の調整オプションである FORCE_LAST_GOOD_PLAN、CREATE_INDEX、DROP_INDEX をデータベース上で DEFAULT に設定する必要があることに注意してください。Please note that in order for the inheritance to work, the three individual tuning options FORCE_LAST_GOOD_PLAN, CREATE_INDEX and DROP_INDEX need to be set to DEFAULT on databases.

CUSTOMCUSTOM
CUSTOM 値を使用すると、データベース上で利用可能なそれぞれの自動調整オプションをカスタムに構成する必要があります。Using the CUSTOM value, you'll need to custom-configure each of the Automatic Tuning options available on databases.

自動調整の自動インデックス管理 CREATE_INDEX オプションを有効または無効になります。Enables or disables automatic index management CREATE_INDEX option of Automatic tuning.

CREATE_INDEX = { DEFAULT | ON | OFF }CREATE_INDEX = { DEFAULT | ON | OFF }
DEFAULTDEFAULT
サーバーから既定の設定が継承されます。Inherits default settings from the server. この場合、個別の自動調整を有効または無効にするオプションは、サーバー レベルで定義されます。In this case, options of enabling or disabling individual Automatic tuning features are defined at the server level.

ONON
有効にすると、不足しているインデックスがデータベース上で自動的に生成されます。When enabled, missing indexes are automatically generated on a database. インデックスの作成に従って、ワークロードのパフォーマンスの向上が確認されます。Following the index creation, gains to the performance of the workload are verified. このような作成されたインデックスでこれ以上ワークロード パフォーマンスに利点が提供されなくなると、自動的に元に戻されます。When such created index no longer provides benefits to the workload performance, it's automatically reverted. 自動的に作成されたインデックスは、システムで生成されたインデックスとしてフラグが設定されます。Indexes automatically created are flagged as a system generated indexed.

OFFOFF
データベース上で不足しているインデックスが自動的に生成されません。Doesn't automatically generate missing indexes on the database.

自動調整の自動インデックス管理 DROP_INDEX オプションを有効または無効になります。Enables or disables automatic index management DROP_INDEX option of Automatic Tuning.

DROP_INDEX = { DEFAULT | ON | OFF }DROP_INDEX = { DEFAULT | ON | OFF }
DEFAULTDEFAULT
サーバーから既定の設定が継承されます。Inherits default settings from the server. この場合、個別の自動調整を有効または無効にするオプションは、サーバー レベルで定義されます。In this case, options of enabling or disabling individual Automatic tuning features are defined at the server level.

ONON
パフォーマンス ワークロードに対する重複または不要になったインデックスが自動的にドロップされます。Automatically drops duplicate or no longer useful indexes to the performance workload.

OFFOFF
データベース上で不足しているインデックスが自動的にドロップされません。Doesn't automatically drop missing indexes on the database.

自動調整の自動プラン修正 FORCE_LAST_GOOD_PLAN オプションを有効または無効になります。Enables or disables automatic plan correction FORCE_LAST_GOOD_PLAN option of Automatic tuning.

FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF }FORCE_LAST_GOOD_PLAN = { DEFAULT | ON | OFF }
DEFAULTDEFAULT
サーバーから既定の設定が継承されます。Inherits default settings from the server. この場合、個別の自動調整を有効または無効にするオプションは、サーバー レベルで定義されます。In this case, options of enabling or disabling individual Automatic tuning features are defined at the server level.

ONON
新しいクエリ プランがパフォーマンスの低下を引き起こしている Transact-SQLTransact-SQL クエリに対して、データベース エンジンDatabase Engine では最後の既知の正常なプランが自動的に強制されます。The データベース エンジンDatabase Engine automatically forces the last known good plan on the Transact-SQLTransact-SQL queries where new query plan causes performance regressions. データベース エンジンDatabase Engine では、強制プランを使用する Transact-SQLTransact-SQL クエリのクエリ パフォーマンスが継続的に監視されます。The データベース エンジンDatabase Engine continuously monitors query performance of the Transact-SQLTransact-SQL query with the forced plan. パフォーマンスが向上した場合、データベース エンジンDatabase Engine では最後の既知の正常なプランの使用が続けられます。If there are performance gains, the データベース エンジンDatabase Engine will keep using last known good plan. パフォーマンスの向上が検出されない場合、データベース エンジンDatabase Engine は新しいクエリ プランを生成します。If performance gains are not detected, the データベース エンジンDatabase Engine will produce a new query plan. クエリ ストアが有効でない場合、または読み取り/書き込みモードでない場合は、ステートメントは失敗します。The statement will fail if the Query Store isn't enabled or if it's not in Read-Write mode.

OFFOFF
データベース エンジンDatabase Engine は、sys.dm_db_tuning_recommendations ビューのクエリ プランの変更によって引き起こされる、潜在的なクエリ パフォーマンスの低下をレポートします。The データベース エンジンDatabase Engine reports potential query performance regressions caused by query plan changes in sys.dm_db_tuning_recommendations view. ただし、これらの推奨事項は自動的には適用されません。However, these recommendations are not automatically applied. ユーザーは、ビューに表示される Transact-SQLTransact-SQL スクリプトを適用することによって、アクティブな推奨事項を監視し、特定された問題を解決できます。Users can monitor active recommendations and fix identified problems by applying Transact-SQLTransact-SQL scripts that are shown in the view. これが既定値です。This is the default value.

<change_tracking_option> ::=<change_tracking_option> ::=

変更の追跡のオプションを制御します。Controls change tracking options. 変更の追跡の有効化、オプションの設定、オプションの変更、および変更の追跡の無効化が可能です。You can enable change tracking, set options, change options, and disable change tracking. 例については、後の「例」のセクションをご覧ください。For examples, see the "Examples" section later in this article.

ONON
データベースの変更の追跡を有効にします。Enables change tracking for the database. 変更の追跡を有効にすると、AUTO CLEANUP オプションと CHANGE RETENTION オプションも設定できます。When you enable change tracking, you can also set the AUTO CLEANUP and CHANGE RETENTION options.

AUTO_CLEANUP = { ON | OFF }AUTO_CLEANUP = { ON | OFF }
ONON
指定した保有期間を過ぎると、変更追跡情報が自動的に削除されます。Change tracking information is automatically removed after the specified retention period.

OFFOFF
変更追跡データはデータベースから削除されません。Change tracking data isn't removed from the database.

CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
データベースに変更追跡情報を保持する最低限の期間を指定します。Specifies the minimum period for keeping change tracking information in the database. データは、AUTO_CLEANUP の値が ON のときにのみ削除されます。Data is removed only when the AUTO_CLEANUP value is ON.

retention_period は、保有期間の数値部分を指定する整数です。retention_period is an integer that specifies the numerical component of the retention period.

既定の保有期間は 2 日です。The default retention period is 2 days. 最小保有期間は 1 分です。The minimum retention period is 1 minute. 保有期間の既定の型は DAYS です。The default retention type is DAYS.

OFFOFF
データベースの変更の追跡を無効にします。Disables change tracking for the database. データベースの変更の追跡を無効にする前に、すべてのテーブルで変更の追跡を無効にしてください。Disable change tracking on all tables before you disable change tracking off the database.

<cursor_option> ::=<cursor_option> ::=

カーソル オプションを制御します。Controls cursor options.

CURSOR_CLOSE_ON_COMMIT { ON | OFF }CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ONON
トランザクションをコミットまたはロール バックしたときに開いていたカーソルはすべて閉じられます。Any cursors open when you commit or roll back a transaction are closed.

OFFOFF
トランザクションがコミットされても、カーソルは開いたままになります。トランザクションをロールバックすると、INSENSITIVE または STATIC として定義されているカーソルを除き、すべてのカーソルが閉じます。Cursors remain open when a transaction is committed; rolling back a transaction closes any cursors except those defined as INSENSITIVE or STATIC.

SET ステートメントを使用した接続レベルの設定は、CURSOR_CLOSE_ON_COMMIT の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for CURSOR_CLOSE_ON_COMMIT. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの CURSOR_CLOSE_ON_COMMIT を OFF に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting CURSOR_CLOSE_ON_COMMIT to OFF for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET CURSOR_CLOSE_ON_COMMIT」をご覧ください。For more information, see SET CURSOR_CLOSE_ON_COMMIT.

sys.databases カタログ ビューの is_cursor_close_on_commit_on 列または DATABASEPROPERTYEX 関数の IsCloseCursorsOnCommitEnabled プロパティを調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_cursor_close_on_commit_on column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled property of the DATABASEPROPERTYEX function. 接続が切断されたときだけカーソルが暗黙的に割り当てを解除されます。The cursor is implicitly deallocated only at disconnect. 詳しくは、「DECLARE CURSOR」をご覧ください。For more information, see DECLARE CURSOR.

<db_encryption_option> ::=<db_encryption_option> ::=

データベース暗号化の状態を制御します。Controls the database encryption state.

ENCRYPTION { ON | OFF }ENCRYPTION { ON | OFF }
データベースを暗号化する (ON) か、暗号化しない (OFF) かを設定します。Sets the database to be encrypted (ON) or not encrypted (OFF). データベース暗号化について詳しくは、「透過的なデータ暗号化」および「Azure SQL Database での Transparent Data Encryption」をご覧ください。For more information about database encryption, see Transparent Data Encryption, and Transparent Data Encryption with Azure SQL Database.

データベース レベルで暗号化を有効にすると、すべてのファイル グループが暗号化されます。When encryption is enabled at the database level, all file groups will be encrypted. すべての新しいファイル グループに、その暗号化プロパティが継承されます。Any new file groups will inherit the encrypted property. データベースに READ ONLY に設定されているファイル グループがあると、データベースの暗号化操作は失敗します。If any file groups in the database are set to READ ONLY, the database encryption operation will fail.

データベースの暗号化の状態を確認するには、sys.dm_database_encryption_keys 動的管理ビューを使用します。You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.

<db_update_option> ::=<db_update_option> ::=

データベースで更新を許可するかどうかを制御します。Controls whether updates are allowed on the database.

READ_ONLYREAD_ONLY
ユーザーは、データベースのデータを読み取ることができますが、変更はできません。Users can read data from the database but not modify it.

注意

クエリのパフォーマンスを向上させるには、データベースを READ_ONLY に設定する前に統計を更新します。To improve query performance, update statistics before setting a database to READ_ONLY. データベースを READ_ONLY に設定した後に追加の統計が必要な場合は、データベース エンジンDatabase Engine によって統計が tempdb に作成されます。If additional statistics are needed after a database is set to READ_ONLY, the データベース エンジンDatabase Engine will create statistics in tempdb. 読み取り専用データベースの統計について詳しくは、「統計」をご覧ください。For more information about statistics for a read-only database, see Statistics.

READ_WRITEREAD_WRITE
データベースに対して読み取りおよび書き込み操作を行うことができます。The database is available for read and write operations.

この状態を変更するには、データベースに対する排他的アクセスが必要になります。To change this state, you must have exclusive access to the database. 詳細については、SINGLE_USER 句をご覧ください。For more information, see the SINGLE_USER clause.

注意

SQL DatabaseSQL Database のフェデレーション データベースでは、SET {READ_ONLY | READ_WRITE} は無効です。On SQL DatabaseSQL Database federated databases, SET { READ_ONLY | READ_WRITE } is disabled.

<db_user_access_option> ::=<db_user_access_option> ::=

データベースへのユーザー アクセスを制御します。Controls user access to the database.

RESTRICTED_USERRESTRICTED_USER
db_owner 固定データベース ロール、dbcreator 固定サーバー ロール、sysadmin 固定サーバー ロールのメンバーだけにデータベースへの接続を許可します。ただし、数に制限はありません。Allows for only members of the db_owner fixed database role and dbcreator and sysadmin fixed server roles to connect to the database, but doesn't limit their number. データベースに対するすべての接続は、ALTER DATABASE ステートメントの終了句で指定した時間枠内に接続解除されます。All connections to the database are disconnected in the timeframe specified by the termination clause of the ALTER DATABASE statement. データベースが RESTRICTED_USER 状態に移行すると、資格のないユーザーによる接続の試みは拒否されます。After the database has transitioned to the RESTRICTED_USER state, connection attempts by unqualified users are refused. RESTRICTED_USER は、SQL Database マネージド インスタンスでは変更できません。RESTRICTED_USER can't be modified with SQL Database managed instance.

MULTI_USERMULTI_USER
データベースに接続するための適切な権限を持つすべてのユーザーが許可されます。All users that have the appropriate permissions to connect to the database are allowed.

sys.databases カタログ ビューの user_access 列または DATABASEPROPERTYEX 関数の UserAccess プロパティを調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the user_access column in the sys.databases catalog view or the UserAccess property of the DATABASEPROPERTYEX function.

<delayed_durability_option> ::=<delayed_durability_option> ::=

トランザクションを完全持続性または遅延持続性のどちらとしてコミットするかどうかを制御します。Controls whether transactions commit fully durable or delayed durable.

DISABLEDDISABLED
SET DISABLED 以後のトランザクションはすべて完全持続性です。All transactions following SET DISABLED are fully durable. ATOMIC ブロックまたは COMMIT ステートメントで設定された持続性オプションは無視されます。Any durability options set in an atomic block or commit statement are ignored.

ALLOWEDALLOWED
SET ALLOWED 以後のトランザクションはすべて、ATOMIC ブロックまたは COMMIT ステートメントで設定された持続性オプションに応じて、完全持続性または遅延持続性になります。All transactions following SET ALLOWED are either fully durable or delayed durable, depending upon the durability option set in the atomic block or commit statement.

FORCEDFORCED
SET FORCED 以後のトランザクションはすべて遅延持続性です。All transactions following SET FORCED are delayed durable. ATOMIC ブロックまたは COMMIT ステートメントで設定された持続性オプションは無視されます。Any durability options set in an atomic block or commit statement are ignored.

<PARAMETERIZATION_option> ::=<PARAMETERIZATION_option> ::=

パラメーター化オプションを制御します。Controls the parameterization option.

PARAMETERIZATION { SIMPLE | FORCED }PARAMETERIZATION { SIMPLE | FORCED }
SIMPLESIMPLE
クエリは、データベースの既定の動作に基づいてパラメーター化されます。Queries are parameterized based on the default behavior of the database.

FORCEDFORCED
SQL ServerSQL Server は、データベース内にあるすべてのクエリをパラメーター化します。parameterizes all queries in the database.

sys.databases カタログ ビューの is_parameterization_forced 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_parameterization_forced column in the sys.databases catalog view.

<query_store_options> ::=<query_store_options> ::=

ON | OFF | CLEAR [ ALL ]ON | OFF | CLEAR [ ALL ]
このデータベースでクエリ ストアを有効にするかどうかを制御します。また、クエリ ストアの内容の削除も制御します。Controls whether the Query Store is enabled in this database, and also controls removing the contents of the Query Store.

ONON
クエリのストアを有効にします。Enables the Query Store.

OFFOFF
クエリのストアを無効にします。Disables the Query Store. これが既定値です。This is the default value.

CLEARCLEAR
クエリ ストアの内容を削除します。Remove the contents of the Query Store.

OPERATION_MODEOPERATION_MODE
クエリのストアの操作モードについて説明します。Describes the operation mode of the Query Store. 有効な値は、READ_ONLY、READ_WRITE はします。Valid values are READ_ONLY and READ_WRITE. READ_WRITE モードでは、クエリのストアでクエリ プランとランタイム実行の統計情報が収集され、保持されます。In READ_WRITE mode, the Query Store collects and persists query plan and runtime execution statistics information. READ_ONLY モードでは、クエリ ストアから情報を読み取ることはできますが、新しい情報は追加されません。In READ_ONLY mode, information can be read from the Query Store, but new information isn't added. クエリのストアを変更は、最大値が割り当てられているクエリのストアの領域が不足している場合は操作モードを READ_ONLY にします。If the maximum allocated space of the Query Store has been exhausted, the Query Store will change is operation mode to READ_ONLY.

CLEANUP_POLICYCLEANUP_POLICY
クエリ ストアのデータ保持ポリシーを表します。Describes the data retention policy of the Query Store. STALE_QUERY_THRESHOLD_DAYS により、クエリ ストアにクエリの情報が保持される日数が決定されます。STALE_QUERY_THRESHOLD_DAYS determines the number of days for which the information for a query is kept in the Query Store. STALE_QUERY_THRESHOLD_DAYS は bigint 型です。STALE_QUERY_THRESHOLD_DAYS is type bigint.

DATA_FLUSH_INTERVAL_SECONDSDATA_FLUSH_INTERVAL_SECONDS
クエリ ストアに書き込まれるデータがディスクに永続化される頻度を決定します。Determines the frequency at which data written to the Query Store is persisted to disk. パフォーマンスを最適化するため、クエリ ストアで収集したデータは非同期的にディスクに書き込まれます。To optimize for performance, data collected by the Query Store is asynchronously written to the disk. この非同期転送の頻度は、DATA_FLUSH_INTERVAL_SECONDS 引数を使用して構成します。The frequency at which this asynchronous transfer occurs is configured by using the DATA_FLUSH_INTERVAL_SECONDS argument. DATA_FLUSH_INTERVAL_SECONDS は bigint 型です。DATA_FLUSH_INTERVAL_SECONDS is type bigint.

MAX_STORAGE_SIZE_MBMAX_STORAGE_SIZE_MB
クエリ ストアに割り当てる領域を指定します。Determines the space allocated to the Query Store. MAX_STORAGE_SIZE_MB は bigint 型です。MAX_STORAGE_SIZE_MB is type bigint.

INTERVAL_LENGTH_MINUTESINTERVAL_LENGTH_MINUTES
クエリのストアにランタイムの実行の統計データを集計する時間間隔を決定します。Determines the time interval at which runtime execution statistics data is aggregated into the Query Store. 領域使用量を最適化するため、ランタイム統計情報ストアのランタイム実行統計情報は、一定の時間枠で集計されます。To optimize for space usage, the runtime execution statistics in the runtime stats store are aggregated over a fixed time window. この固定間隔の構成に、INTERVAL_LENGTH_MINUTES 引数を使用します。This fixed time window is configured by using the INTERVAL_LENGTH_MINUTES argument. INTERVAL_LENGTH_MINUTES は bigint 型です。INTERVAL_LENGTH_MINUTES is type bigint.

SIZE_BASED_CLEANUP_MODESIZE_BASED_CLEANUP_MODE
データの総量が最大サイズに近づいたときに、クリーンアップを自動的にアクティブにするかどうかを制御します。Controls whether cleanup will be automatically activated when the total amount of data gets close to maximum size.

OFFOFF
サイズ ベースのクリーンアップは自動的にアクティブ化されません。Size-based cleanup won't be automatically activated.

AUTOAUTO
ディスクのサイズが max_storage_size_mb の 90% に達すると、サイズ ベースのクリーンアップが自動的にアクティブ化されます。Size-based cleanup will be automatically activated when size on disk reaches 90% of max_storage_size_mb. サイズのクリーンアップでは、まず最も安価で最も古いクエリを削除します。Size-based cleanup removes the least expensive and oldest queries first. max_storage_size_mb の約 80% で停止します。It stops at approximately 80% of max_storage_size_mb. これは既定の構成値です。This is the default configuration value.

SIZE_BASED_CLEANUP_MODE は nvarchar 型です。SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODEQUERY_CAPTURE_MODE
現在アクティブなクエリのキャプチャ モードを指定します。Designates the currently active query capture mode:

ALLALL
すべてのクエリがキャプチャされます。All queries are captured.

AUTOAUTO
実行の数とリソースの消費量に基づいて関連するクエリがキャプチャされます。Capture relevant queries based on execution count and resource consumption. これは Azure SQL データベースAzure SQL Database の既定の構成値です。This is the default configuration value for Azure SQL データベースAzure SQL Database.

なしNONE
新しいクエリのキャプチャを停止します。Stop capturing new queries. クエリ ストアは、既にキャプチャされたクエリのコンパイルと実行時の統計情報を収集し続けます。The Query Store will continue to collect compile and runtime statistics for queries that were captured already. 重要なクエリがキャプチャされない可能性があるため、この構成は慎重に使用してください。Use this configuration with caution since you may miss capturing important queries.

QUERY_CAPTURE_MODE は nvarchar 型です。QUERY_CAPTURE_MODE is type nvarchar.

max_plans_per_queryMAX_PLANS_PER_QUERY
各クエリに対して保持の計画の最大数を表す整数。An integer representing the maximum number of plans maintained for each query. 既定値は 200 です。Default is 200.

<snapshot_option> ::=<snapshot_option> ::=

トランザクション分離レベルを示します。Determines the transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION { ON | OFF }ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ONON
データベース レベルでのスナップショット オプションを有効にします。Enables Snapshot option at the database level. 有効にした場合、スナップショット分離を使用するトランザクションがなくても、DML ステートメントによって、行バージョンの生成が開始されます。When it's enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. このオプションを有効にすると、トランザクションで SNAPSHOT トランザクション分離レベルを指定できます。Once this option is enabled, transactions can specify the SNAPSHOT transaction isolation level. SNAPSHOT 分離レベルでトランザクションが実行されると、すべてのステートメントはトランザクション開始時のデータのスナップショットを参照します。When a transaction runs at the SNAPSHOT isolation level, all statements see a snapshot of data as it exists at the start of the transaction. SNAPSHOT 分離レベルで実行されているトランザクションが複数のデータベースのデータにアクセスする場合は、すべてのデータベースで ALLOW_SNAPSHOT_ISOLATION が ON に設定されている必要があります。ALLOW_SNAPSHOT_ISOLATION が OFF になっているデータベース内のテーブルにアクセスする場合は、トランザクション内の各ステートメントで、FROM 句内のすべての参照に対してロック ヒントを使用する必要があります。If a transaction running at the SNAPSHOT isolation level accesses data in multiple databases, either ALLOW_SNAPSHOT_ISOLATION must be set to ON in all the databases, or each statement in the transaction must use locking hints on any reference in a FROM clause to a table in a database where ALLOW_SNAPSHOT_ISOLATION is OFF.

OFFOFF
データベース レベルでのスナップショット オプションを無効にします。Turns off the Snapshot option at the database level. トランザクションでは、SNAPSHOT トランザクション分離レベルを指定できません。Transactions can't specify the SNAPSHOT transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION を新しい状態に (ON から OFF へ、または OFF から ON へ) 設定した場合、ALTER DATABASE は、データベース内にあるすべての既存のトランザクションがコミットされるまで、呼び出し元に制御を返しません。When you set ALLOW_SNAPSHOT_ISOLATION to a new state (from ON to OFF, or from OFF to ON), ALTER DATABASE doesn't return control to the caller until all existing transactions in the database are committed. データベースが既に ALTER DATABASE ステートメントで指定した状態にある場合には、制御は呼び出し元に直ちに返されます。If the database is already in the state specified in the ALTER DATABASE statement, control is returned to the caller immediately. ALTER DATABASE ステートメントがすぐに制御を返さない場合には、sys.dm_tran_active_snapshot_database_transactions を使用して、長時間実行されているトランザクションがあるかどうかを確認できます。If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. ALTER DATABASE ステートメントが取り消された場合、データベースは、ALTER DATABASE が開始された時点での状態に留まります。If the ALTER DATABASE statement is canceled, the database remains in the state it was in when ALTER DATABASE was started. sys.databases カタログ ビューに、データベース内のスナップショット分離トランザクションの状態が表示されます。The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. snapshot_isolation_state_desc = IN_TRANSITION_TO_ON の場合、ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF は 6 秒間待ってから、操作を再試行します。If snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF will pause six seconds and retry the operation.

データベースが OFFLINE の場合には、ALLOW_SNAPSHOT_ISOLATION の状態を変更できません。You can't change the state of ALLOW_SNAPSHOT_ISOLATION if the database is OFFLINE.

READ_ONLY のデータベースで ALLOW_SNAPSHOT_ISOLATION を設定すると、このデータベースが後に READ_WRITE に設定された場合でも、この設定が保持されます。If you set ALLOW_SNAPSHOT_ISOLATION in a READ_ONLY database, the setting will be kept if the database is later set to READ_WRITE.

master、model、msdb、および tempdb データベースでは、ALLOW_SNAPSHOT_ISOLATION 設定を変更できます。You can change the ALLOW_SNAPSHOT_ISOLATION settings for the master, model, msdb, and tempdb databases. tempdb でこの設定を変更すると、この設定は、データベース エンジンDatabase Engineのインスタンスが停止および再起動されるたびに保持されます。The setting is kept every time the instance of the データベース エンジンDatabase Engine is stopped and restarted if you change the setting for tempdb. model でこの設定を変更すると、この設定は、tempdb を除く新たに作成されたすべてのデータベースの既定値となります。If you change the setting for model, that setting becomes the default for any new databases that are created, except for tempdb.

master および msdb データベースでは、このオプションは既定で ON になります。The option is ON, by default, for the master and msdb databases.

sys.databases カタログ ビューの snapshot_isolation_state 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the snapshot_isolation_state column in the sys.databases catalog view.

READ_COMMITTED_SNAPSHOT { ON | OFF }READ_COMMITTED_SNAPSHOT { ON | OFF }
ONON
データベース レベルでの Read Committed スナップショット オプションを有効にします。Enables Read-Committed Snapshot option at the database level. 有効にした場合、スナップショット分離を使用するトランザクションがなくても、DML ステートメントによって、行バージョンの生成が開始されます。When it's enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. このオプションを有効にすると、READ COMMITTED 分離レベルを指定しているトランザクションは、ロックではなく、行のバージョン管理を使用します。Once this option is enabled, the transactions specifying the READ COMMITTED isolation level use row versioning instead of locking. トランザクションが READ COMMITTED 分離レベルで実行されている場合、すべてのステートメントは、ステートメントの開始時に存在していたデータのスナップショットを参照します。All statements see a snapshot of data as it exists at the start of the statement when a transaction runs at the READ COMMITTED isolation level.

OFFOFF
データベース レベルでの Read Committed スナップショット オプションを無効にします。Turns off Read-Committed Snapshot option at the database level. READ COMMITTED 分離レベルを指定しているトランザクションは、ロックを使用します。Transactions specifying the READ COMMITTED isolation level use locking.

READ_COMMITTED_SNAPSHOT を ON または OFF に設定するには、ALTER DATABASE コマンドを実行している接続以外にデータベースへのアクティブな接続が存在しないようにする必要があります。To set READ_COMMITTED_SNAPSHOT ON or OFF, there must be no active connections to the database except for the connection running the ALTER DATABASE command. データベースがシングル ユーザー モードになっている必要はありません。However, the database doesn't have to be in single-user mode. データベースが OFFLINE の場合には、このオプションの状態は変更できません。You can't change the state of this option when the database is OFFLINE.

READ_ONLY のデータベースで READ_COMMITTED_SNAPSHOT を設定すると、このデータベースが後で READ_WRITE に設定された場合でも、この設定が保持されます。If you set READ_COMMITTED_SNAPSHOT in a READ_ONLY database, the setting will be kept when the database is later set to READ_WRITE.

master、tempdb、または msdb システム データベースでは、READ_COMMITTED_SNAPSHOT を ON に設定することはできません。READ_COMMITTED_SNAPSHOT can't be turned ON for the master, tempdb, or msdb system databases. model でこの設定を変更すると、この設定は、tempdb を除く新たに作成されたすべてのデータベースの既定値となります。If you change the setting for model, that setting becomes the default for any new databases created, except for tempdb.

sys.databases カタログ ビューの is_read_committed_snapshot_on 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_read_committed_snapshot_on column in the sys.databases catalog view.

警告

DURABILITY = SCHEMA_ONLY でテーブルを作成した後に、ALTER DATABASE を使用して READ_COMMITTED_SNAPSHOT を変更すると、テーブル内のデータが失われます。When a table is created with DURABILITY = SCHEMA_ONLY, and READ_COMMITTED_SNAPSHOT is subsequently changed using ALTER DATABASE, data in the table will be lost.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
ONON
トランザクション分離レベルが SNAPSHOT より低い分離レベルに設定されている場合は、メモリ最適化テーブル上で解釈されたすべての Transact-SQLTransact-SQL 操作が SNAPSHOT 分離レベルで実行されます。When the transaction isolation level is set to any isolation level lower than SNAPSHOT, all interpreted Transact-SQLTransact-SQL operations on memory-optimized tables are run under SNAPSHOT isolation. SNAPSHOT よりも低い分離レベルの例として、READ COMMITTED、READ UNCOMMITTEDREAD があります。Examples of isolation levels lower than snapshot are READ COMMITTED or READ UNCOMMITTED. このような操作は、トランザクション分離レベルがセッション レベルで明示的に設定されているか、既定値が暗黙的に使用されるかに関係なく実行されます。These operations run whether the transaction isolation level is set explicitly at the session level, or the default is used implicitly.

OFFOFF
メモリ最適化テーブル上で解釈された Transact-SQLTransact-SQL 操作のトランザクション分離レベルは引き上げられません。Doesn't elevate the transaction isolation level for interpreted Transact-SQLTransact-SQL operations on memory-optimized tables.

データベースが OFFLINE の場合には、MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT の状態を変更できません。You can't change the state of MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT if the database is OFFLINE.

既定値は OFF です。The default value is OFF.

sys.databases カタログ ビューの is_memory_optimized_elevate_to_snapshot_on 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on column in the sys.databases catalog view.

<sql_option> ::=<sql_option> ::=

ANSI 準拠のオプションをデータベース レベルで制御します。Controls the ANSI compliance options at the database level.

ANSI_NULL_DEFAULT { ON | OFF }ANSI_NULL_DEFAULT { ON | OFF }
CREATE TABLE ステートメントまたは ALTER TABLE ステートメントで NULL を許可するかどうかが明示的に定義されていない場合に、列または CLR ユーザー定義型の既定値を NULL と NOT NULL のどちらにするかを指定します。Determines the default value, NULL or NOT NULL, of a column or CLR user-defined type for which the nullability isn't explicitly defined in CREATE TABLE or ALTER TABLE statements. 制約によって定義された列は、この設定に関係なく制約のルールに従います。Columns that are defined with constraints follow constraint rules whatever this setting may be.

ONON
既定値は NULL です。The default value is NULL.

OFFOFF
既定値は NOT NULL です。The default value is NOT NULL.

SET ステートメントを使用した接続レベルの設定は、ANSI_NULL_DEFAULT に関するデータベースレベルの既定の設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_NULL_DEFAULT. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_NULL_DEFAULT を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULL_DEFAULT to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_NULL_DFLT_ON」をご覧ください。For more information, see SET ANSI_NULL_DFLT_ON.

ANSI 互換性を確保するために、データベース オプション ANSI_NULL_DEFAULT を ON に設定すると、データベースの既定値が NULL に変更されます。For ANSI compatibility, setting the database option ANSI_NULL_DEFAULT to ON changes the database default to NULL.

sys.databases カタログ ビューの is_ansi_null_default_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_null_default_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiNullDefault プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiNullDefault property of the DATABASEPROPERTYEX function.

ANSI_NULLS { ON | OFF }ANSI_NULLS { ON | OFF }
ONON
null 値との比較結果は、すべて UNKNOWN になります。All comparisons to a null value evaluate to UNKNOWN.

OFFOFF
UNICODE 以外の値と null 値の比較結果は、両方の値が NULL である場合には TRUE になります。Comparisons of non-UNICODE values to a null value evaluate to TRUE if both values are NULL.

重要

今後のバージョンの SQL ServerSQL Server では、ANSI_NULLS が常に ON になり、このオプションを明示的に OFF に設定するすべてのアプリケーションでエラーが発生します。In a future version of SQL ServerSQL Server, ANSI_NULLS will always be ON and any applications that explicitly set the option to OFF will produce an error. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

SET ステートメントを使用した接続レベルの設定は、ANSI_NULLS の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for ANSI_NULLS. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_NULLS を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULLS to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_NULLS」をご覧ください。For more information, see SET ANSI_NULLS.

注意

SET ANSI_NULLS は、計算列やインデックス付きビューのインデックスを作成または変更する場合にも、ON に設定する必要があります。SET ANSI_NULLS also must be set to ON when you create or make changes to indexes on computed columns or indexed views.

sys.databases カタログ ビューの is_ansi_nulls_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_nulls_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiNullsEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiNullsEnabled property of the DATABASEPROPERTYEX function.

ANSI_PADDING { ON | OFF }ANSI_PADDING { ON | OFF }
ONON
比較を行う前に、文字列が同じ長さになるようにパディングされます。Strings are padded to the same length before conversion. また、varchar または nvarchar データ型に挿入される前にも、同じ長さになるようにパディングされます。Also padded to the same length before inserting to a varchar or nvarchar data type.

OFFOFF
文字値の末尾にある空白を varchar 型または nvarchar 型の列に挿入します。Inserts trailing blanks in character values into varchar or nvarchar columns. varbinary 型の列に挿入されたバイナリ値の末尾にある 0 はそのまま残されます。Also leaves trailing zeros in binary values that are inserted into varbinary columns. 列の長さに合わせるためにパディングされることはありません。Values aren't padded to the length of the column.

OFF を指定した場合、この設定は新しい列の定義にのみ影響します。When OFF is specified, this setting affects only the definition of new columns.

重要

今後のバージョンの SQL ServerSQL Server では、ANSI_PADDING が常に ON になり、このオプションを明示的に OFF に設定するすべてのアプリケーションでエラーが発生します。In a future version of SQL ServerSQL Server, ANSI_PADDING will always be ON and any applications that explicitly set the option to OFF will produce an error. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature. ANSI_PADDING は常に ON に設定することをお勧めします。We recommend that you always set ANSI_PADDING to ON. 計算列やインデックス付きビューのインデックスを作成または操作するときには、ANSI_PADDING を ON に設定する必要があります。ANSI_PADDING must be ON when you create or manipulate indexes on computed columns or indexed views.

char(n) および binary(n) 列が NULL を許容する場合は、ANSI_PADDING を ON に設定すると、列の長さに合うようにパディングされます。char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. ANSI_PADDING を OFF に設定すると、末尾の空白および 0 は切り捨てられます。Trailing blanks and zeros are trimmed when ANSI_PADDING is OFF. char(n) および binary(n) 列が NULL を許容しない場合は、常に列の長さに合うようにパディングが行われます。char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.

SET ステートメントを使用した接続レベルの設定は、ANSI_PADDING に関するデータベースレベルの既定の設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_PADDING. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_PADDING を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_PADDING to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_PADDING」をご覧ください。For more information, see SET ANSI_PADDING.

sys.databases カタログ ビューの is_ansi_padding_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_padding_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiPaddingEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiPaddingEnabled property of the DATABASEPROPERTYEX function.

ANSI_WARNINGS { ON | OFF }ANSI_WARNINGS { ON | OFF }
ONON
0 除算などの状態になったときに、エラーまたは警告が発行されます。Errors or warnings are issued when conditions such as divide-by-zero occur. 集計関数に NULL 値が出現した場合にも、エラーと警告が発行されます。Errors and warnings are also issued when null values appear in aggregate functions.

OFFOFF
0 除算などの条件が発生しても、警告は発行されず、NULL 値が返されます。No warnings are raised and null values are returned when conditions such as divide-by-zero occur.

注意

SET ANSI_WARNINGS は、計算列やインデックス付きビューのインデックスを作成または変更する場合には、ON に設定する必要があります。SET ANSI_WARNINGS must be set to ON when you create or make changes to indexes on computed columns or indexed views.

SET ステートメントを使用した接続レベルの設定は、ANSI_WARNINGS の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for ANSI_WARNINGS. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_WARNINGS を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_WARNINGS to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_WARNINGS」をご覧ください。For more information, see SET ANSI_WARNINGS.

sys.databases カタログ ビューの is_ansi_warnings_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_warnings_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiWarningsEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiWarningsEnabled property of the DATABASEPROPERTYEX function.

ARITHABORT { ON | OFF }ARITHABORT { ON | OFF }
ONON
クエリ実行中にオーバーフロー エラーまたは 0 除算エラーが発生した場合に、クエリを終了します。A query is ended when an overflow or divide-by-zero error occurs during query execution.

OFFOFF
このようなエラーのいずれかが発生した場合に警告メッセージが表示されます。A warning message is displayed when one of these errors occurs. 警告が表示された場合でも、クエリ、バッチ、またはトランザクションは、エラーが発生しなかったかのように処理を続行します。The query, batch, or transaction continues to process as if no error occurred even if a warning is displayed.

注意

SET ARITHABORT は、計算列やインデックス付きビューのインデックスを作成または変更する場合には、ON に設定する必要があります。SET ARITHABORT must be set to ON when you create or make changes to indexes on computed columns or indexed views.

sys.databases カタログ ビューの is_arithabort_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_arithabort_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsArithmeticAbortEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsArithmeticAbortEnabled property of the DATABASEPROPERTYEX function.

COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 }COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 }
詳しくは、「ALTER DATABASE 互換性レベル」をご覧ください。For more information, see ALTER DATABASE Compatibility Level.

CONCAT_NULL_YIELDS_NULL { ON | OFF }CONCAT_NULL_YIELDS_NULL { ON | OFF }
ONON
オペランドのいずれかが NULL の場合、連結操作の結果は NULL になります。The result of a concatenation operation is NULL when either operand is NULL. たとえば、文字列 "This is" と NULL を連結すると、結果は "This is" ではなく NULL になります。For example, concatenating the character string "This is" and NULL causes the value NULL, instead of the value "This is".

OFFOFF
null 値は空の文字列として扱われます。The null value is treated as an empty character string.

注意

CONCAT_NULL_YIELDS_NULL は、計算列やインデックス付きビューのインデックスを作成または変更する場合には、ON に設定する必要があります。CONCAT_NULL_YIELDS_NULL must be set to ON when you create or make changes to indexes on computed columns or indexed views.

重要

今後のバージョンの SQL ServerSQL Server では、CONCAT_NULL_YIELDS_NULL が常に ON になり、このオプションを明示的に OFF に設定するすべてのアプリケーションでエラーが発生します。In a future version of SQL ServerSQL Server, CONCAT_NULL_YIELDS_NULL will always be ON and any applications that explicitly set the option to OFF will produce an error. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

SET ステートメントを使用した接続レベルの設定は、CONCAT_NULL_YIELDS_NULL の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for CONCAT_NULL_YIELDS_NULL. 既定では、ODBC クライアントと OLE DB クライアントは、SQL ServerSQL Server のインスタンスに接続するときに、セッションの CONCAT_NULL_YIELDS_NULL を ON に設定する接続レベルの SET ステートメントを実行します。By default, ODBC and OLE DB clients issue a connection-level SET statement setting CONCAT_NULL_YIELDS_NULL to ON for the session when connecting to an instance of SQL ServerSQL Server. 詳しくは、「SET CONCAT_NULL_YIELDS_NULL」をご覧ください。For more information, see SET CONCAT_NULL_YIELDS_NULL.

sys.databases カタログ ビューの is_concat_null_yields_null_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_concat_null_yields_null_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsNullConcat プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsNullConcat property of the DATABASEPROPERTYEX function.

QUOTED_IDENTIFIER { ON | OFF }QUOTED_IDENTIFIER { ON | OFF }
ONON
識別子を囲む二重引用符を使用できます。Double quotation marks can be used to enclose delimited identifiers.

二重引用符で囲まれた文字列はすべて、オブジェクト識別子として解釈されます。All strings delimited by double quotation marks are interpreted as object identifiers. 引用符で囲まれた識別子は、Transact-SQLTransact-SQL の識別子の規則に従う必要はありません。Quoted identifiers don't have to follow the Transact-SQLTransact-SQL rules for identifiers. キーワードを含めることができます。また、Transact-SQLTransact-SQL 識別子には使用できない文字を含めることもできます。They can be keywords and can include characters not allowed in Transact-SQLTransact-SQL identifiers. 単一引用符 (') がリテラル文字列の一部になっている場合は、それを二重引用符 (") で表記できます。If a single quotation mark (') is part of the literal string, it can be represented by double quotation marks (").

OFFOFF
識別子を引用符で囲むことができず、Transact-SQLTransact-SQL の識別子に関するすべての規則に従う必要があります。Identifiers can't be in quotation marks and must follow all Transact-SQLTransact-SQL rules for identifiers. リテラルは単一引用符と二重引用符のどちらで区切ることもできます。Literals can be delimited by either single or double quotation marks.

SQL ServerSQL Server では識別子を角かっこ ([ ]) で囲むこともできます。also allows for identifiers to be delimited by square brackets ([ ]). 角かっこで囲まれた識別子は、QUOTED_IDENTIFIER 設定に関係なくいつでも使用できます。Bracketed identifiers can always be used, whatever the QUOTED_IDENTIFIER setting is. 詳細については、「データベース識別子」を参照してください。For more information, see Database Identifiers.

このオプションは、テーブルの作成時に、常に ON としてテーブルのメタデータに格納されます。When a table is created, the QUOTED IDENTIFIER option is always stored as ON in the metadata of the table. このオプションは、テーブルの作成時にオプションが OFF に設定された場合でも格納されます。The option is stored even if the option is set to OFF when the table is created.

SET ステートメントを使用した接続レベルの設定は、QUOTED_IDENTIFIER の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for QUOTED_IDENTIFIER. 既定では、ODBC クライアントと OLE DB QUOTED_IDENTIFIER を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting QUOTED_IDENTIFIER to ON, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET QUOTED_IDENTIFIER」をご覧ください。For more information, see SET QUOTED_IDENTIFIER.

sys.databases カタログ ビューの is_quoted_identifier_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_quoted_identifier_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsQuotedIdentifiersEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsQuotedIdentifiersEnabled property of the DATABASEPROPERTYEX function.

NUMERIC_ROUNDABORT { ON | OFF }NUMERIC_ROUNDABORT { ON | OFF }
ONON
式で有効桁数の損失が発生する場合にエラーが生成されます。An error is generated when loss of precision occurs in an expression.

OFFOFF
有効桁数の損失が発生してもエラー メッセージが生成されず、結果を格納する列または変数の有効桁数に丸められます。Loss of precision doesn't generate an error message, and the result is rounded to the precision of the column or variable storing the result.

重要

NUMERIC_ROUNDABORT は、計算列やインデックス付きビューのインデックスを作成または変更する場合は、OFF に設定する必要があります。NUMERIC_ROUNDABORT must be set to OFF when you create or make changes to indexes on computed columns or indexed views.

sys.databases カタログ ビューの is_numeric_roundabort_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_numeric_roundabort_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsNumericRoundAbortEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsNumericRoundAbortEnabled property of the DATABASEPROPERTYEX function.

RECURSIVE_TRIGGERS { ON | OFF }RECURSIVE_TRIGGERS { ON | OFF }
ONON
AFTER トリガーの再帰呼び出しを実行できるようになります。Recursive firing of AFTER triggers is allowed.

OFFOFF
sys.databases カタログ ビューの is_recursive_triggers_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsRecursiveTriggersEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

注意

RECURSIVE_TRIGGERS に OFF に設定されている場合、直接再帰呼び出しのみが回避されます。Only direct recursion is prevented when RECURSIVE_TRIGGERS is set to OFF. 間接再帰呼び出しを無効にするには、nested triggers サーバー オプションを 0 に設定する必要があります。To disable indirect recursion, you must also set the nested triggers server option to 0.

sys.databases カタログ ビューの is_recursive_triggers_on 列または DATABASEPROPERTYEX 関数の IsRecursiveTriggersEnabled プロパティを調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view or the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

<target_recovery_time_option> ::=<target_recovery_time_option> ::=

間接的なチェックポイントの生成頻度をデータベースごとに指定します。Specifies the frequency of indirect checkpoints on a per-database basis. SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降、新しいデータベースに対する既定値は 1 分であり、これはデータベースが間接チェックポイントを使用することを示します。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates database will use indirect checkpoints. 旧バージョンの既定値は 0 です。これは、データベースが自動チェックポイントを使用することを示し、その頻度はサーバー インスタンスの復旧間隔の設定によって異なります。For older versions the default is 0, which indicates that the database will use automatic checkpoints, whose frequency depends on the recovery interval setting of the server instance. MicrosoftMicrosoft では、ほとんどのシステムに対して 1 分をお勧めします。recommends 1 minute for most systems.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }
target_recovery_time target_recovery_time
クラッシュが発生した場合、指定したデータベースが復旧に要する時間の上限を指定します。Specifies the maximum bound on the time to recover the specified database in the event of a crash.

SECONDSSECONDS
target_recovery_time が秒単位で表されていることを示します。Indicates that target_recovery_time is expressed as the number of seconds.

MINUTESMINUTES
target_recovery_time が分単位で表されていることを示します。Indicates that target_recovery_time is expressed as the number of minutes.

間接的なチェックポイントについて詳しくは、「データベース チェックポイント」をご覧ください。For more information about indirect checkpoints, see Database Checkpoints.

WITH <termination> ::=WITH <termination> ::=

データベースの状態が変更されるときに、未完了のトランザクションをいつロールバックするかを指定します。Specifies when to roll back incomplete transactions when the database is transitioned from one state to another. データベースがロックされている場合に終了句を省略すると、ALTER DATABASE ステートメントが無限に待機します。If the termination clause is omitted, the ALTER DATABASE statement waits indefinitely if there's any lock on the database. 指定できる終了句は 1 つのみであり、SET 句の後に指定します。Only one termination clause can be specified, and it follows the SET clauses.

注意

すべてのデータベース オプションで WITH <termination> 句が使用できるわけではありません。Not all database options use the WITH <termination> clause. 詳細については、この記事の「解説」セクションの「オプションの設定」にある表をご覧ください。For more information, see the table under "Setting options of the "Remarks" section of this article.

ROLLBACK AFTER "整数" [SECONDS] | ROLLBACK IMMEDIATEROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
指定した秒数の後、または直ちにロールバックするかどうかを指定します。Specifies whether to roll back after the specified number of seconds or immediately.

NO_WAITNO_WAIT
要求されたデータベースの状態またはオプションの変更がすぐに完了しない場合に、要求が失敗するように指定します。Specifies that the request will fail if the requested database state or option change can't complete immediately. すぐに完了とは、トランザクションが自身のコミットまたはロール バック処理を待機しないことを意味します。Completing immediately means not waiting for transactions to commit or roll back on their own.

オプションの設定Setting options

データベース オプションの現在の設定を取得するには、sys.databases カタログ ビューまたは DATABASEPROPERTYEX を使用します。To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX

データベース オプションを設定すると、新しい設定は直ちに有効になります。After you set a database option, the new setting takes effect immediately.

新しく作成されるすべてのデータベースについて、任意のデータベース オプションの既定値を変更できます。You can change the default values for any one of the database options for all newly created databases. これを実行するには、モデル データベース内の適切なデータベース オプションを変更します。To do so, change the appropriate database option in the model database.

データベース オプションの中には、WITH <termination> 句を使用しないものや、他のオプションと組み合わせて指定できないものもあります。Not all database options use the WITH <termination> clause or can be specified in combination with other options. 次の表に、このようなオプションと、それらのオプションと終了状態を示します。The following table lists these options and their option and termination status.

オプションのカテゴリOptions category 他のオプションとの組み合わせの可否Can be specified with other options WITH <termination> 句の使用の可否Can use the WITH <termination> clause
<auto_option><auto_option> はいYes いいえNo
<change_tracking_option><change_tracking_option> はいYes はいYes
<cursor_option><cursor_option> はいYes いいえNo
<db_encryption_option><db_encryption_option> はいYes いいえNo
<db_update_option><db_update_option> はいYes はいYes
<db_user_access_option><db_user_access_option> はいYes はいYes
<delayed_durability_option><delayed_durability_option> はいYes はいYes
<parameterization_option><parameterization_option> はいYes はいYes
ALLOW_SNAPSHOT_ISOLATIONALLOW_SNAPSHOT_ISOLATION いいえNo いいえNo
READ_COMMITTED_SNAPSHOTREAD_COMMITTED_SNAPSHOT いいえNo はいYes
MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOTMEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT はいYes はいYes
DATE_CORRELATION_OPTIMIZATIONDATE_CORRELATION_OPTIMIZATION はいYes はいYes
<sql_option><sql_option> はいYes いいえNo
<target_recovery_time_option><target_recovery_time_option> いいえNo はいYes

使用例Examples

A.A. データベースを READ_ONLY に設定するSetting the database to READ_ONLY

データベースまたはファイル グループの状態を READ_ONLY または READ_WRITE に変更するには、データベースに対する排他的アクセスが必要です。Changing the state of a database or file group to READ_ONLY or READ_WRITE requires exclusive access to the database. 次の例では、アクセスを制限するために、データベースを RESTRICTED_USER モードに設定します。The following example sets the database to RESTRICTED_USER mode to limit access. 次に、AdventureWorks2012AdventureWorks2012 データベースの状態を READ_ONLY に設定し、データベースへのアクセス権をすべてのユーザーに戻します。The example then sets the state of the AdventureWorks2012AdventureWorks2012 database to READ_ONLY and returns access to the database to all users.

USE master;
GO
ALTER DATABASE [database_name]
SET RESTRICTED_USER;
GO
ALTER DATABASE [database_name]
SET READ_ONLY
GO
ALTER DATABASE [database_name]
SET MULTI_USER;
GO

B.B. データベースの SNAPSHOT 分離を有効にするEnabling snapshot isolation on a database

次の例では、AdventureWorks2012AdventureWorks2012 データベースに対する SNAPSHOT 分離フレームワーク オプションを有効にします。The following example enables the snapshot isolation framework option for the AdventureWorks2012AdventureWorks2012 database.

USE [database_name];
USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO

結果セットは、SNAPSHOT 分離フレームワークが有効であることを示しています。The result set shows that the snapshot isolation framework is enabled.

NAMEname snapshot_isolation_statesnapshot_isolation_state descriptiondescription
[database_name][database_name] 11 ONON

C.C. 変更の追跡を有効化、変更、および無効化するEnabling, modifying, and disabling change tracking

次の例では、AdventureWorks2012AdventureWorks2012 データベースで変更の追跡を有効にし、保有期間を 2 日に設定します。The following example enables change tracking for the AdventureWorks2012AdventureWorks2012 database and sets the retention period to 2 days.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

次の例では、保有期間を 3 日に変更する方法を示します。The following example shows how to change the retention period to 3 days.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

次の例では、AdventureWorks2012AdventureWorks2012 データベースで変更の追跡を無効にする方法を示します。The following example shows how to disable change tracking for the AdventureWorks2012AdventureWorks2012 database.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

D.D. クエリのストアを有効にするEnabling the Query Store

次の例では、クエリ ストアを有効にし、クエリ ストアのパラメーターを構成します。The following example enables the Query Store and configures Query Store parameters.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
(
      OPERATION_MODE = READ_WRITE
    , CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 )
    , DATA_FLUSH_INTERVAL_SECONDS = 900
    , MAX_STORAGE_SIZE_MB = 1024
    , INTERVAL_LENGTH_MINUTES = 60
    );

参照See Also

SQL ServerSQL Server SQL Database
単一データベース/エラスティック プール
SQL Database
single database/elastic pool
* SQL Database
マネージド インスタンス *
 
* SQL Database
managed instance *
 
SQL Data
Warehouse
SQL Data
Warehouse

 

Azure SQL Database マネージド インスタンスAzure SQL Database managed instance

互換性レベルは SET のオプションですが、「ALTER DATABASE 互換性レベル」で説明されています。Compatibility levels are SET options but are described in ALTER DATABASE Compatibility Level.

注意

多くのデータベース設定オプションは、SET ステートメントを使用して現在のセッション用に構成できます。これらは多くの場合、接続するアプリケーションによって構成されます。Many database set options can be configured for the current session by using SET Statements and are often configured by applications when they connect. セッション レベルの SET オプションは、ALTER DATABASE SET の値をオーバーライドします。Session-level set options override the ALTER DATABASE SET values. 次のセクションで説明されているデータベース オプションは、セッション用に設定できる値であり、他の SET オプションの値は明示的に指定されていません。The database options described in the following sections are values that can be set for sessions that don't explicitly provide other set option values.

構文Syntax

ALTER DATABASE { database_name | Current }
SET
{
    <optionspec> [ ,...n ]
}
;

<optionspec> ::=
{
    <auto_option>
  | <change_tracking_option>
  | <cursor_option>
  | <db_encryption_option>
  | <delayed_durability_option>
  | <parameterization_option>
  | <query_store_options>
  | <snapshot_option>
  | <sql_option>
  | <target_recovery_time_option>
  | <termination>
  | <temporal_history_retention>
}
;
<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON [ ( INCREMENTAL = { ON | OFF } ) ] }
  | AUTO_SHRINK { ON | OFF }
  | AUTO_UPDATE_STATISTICS { ON | OFF }
  | AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
}

<automatic_tuning_option> ::=
{
  AUTOMATIC_TUNING ( FORCE_LAST_GOOD_PLAN = { ON | OFF } )
}

<change_tracking_option> ::=
{
  CHANGE_TRACKING
   {
       = OFF
     | = ON [ ( <change_tracking_option_list > [,...n] ) ]
     | ( <change_tracking_option_list> [,...n] )
   }
}

<change_tracking_option_list> ::=
   {
       AUTO_CLEANUP = { ON | OFF }
     | CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
   }

<cursor_option> ::=
{
    CURSOR_CLOSE_ON_COMMIT { ON | OFF }
}

<db_encryption_option> ::=
  ENCRYPTION { ON | OFF }

<delayed_durability_option> ::=DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }

<parameterization_option> ::=
  PARAMETERIZATION { SIMPLE | FORCED }

<query_store_options> ::=
{
  QUERY_STORE
  {
    = OFF
    | = ON [ ( <query_store_option_list> [,... n] ) ]
    | ( < query_store_option_list> [,... n] )
    | CLEAR [ ALL ]
  }
}

<query_store_option_list> ::=
{
  OPERATION_MODE = { READ_WRITE | READ_ONLY }
  | CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = number )
  | DATA_FLUSH_INTERVAL_SECONDS = number
  | MAX_STORAGE_SIZE_MB = number
  | INTERVAL_LENGTH_MINUTES = number
  | SIZE_BASED_CLEANUP_MODE = [ AUTO | OFF ]
  | QUERY_CAPTURE_MODE = [ ALL | AUTO | NONE ]
  | MAX_PLANS_PER_QUERY = number
}

<snapshot_option> ::=
{
    ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
  | READ_COMMITTED_SNAPSHOT {ON | OFF }
  | MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT {ON | OFF }
}
<sql_option> ::=
{
    ANSI_NULL_DEFAULT { ON | OFF }
  | ANSI_NULLS { ON | OFF }
  | ANSI_PADDING { ON | OFF }
  | ANSI_WARNINGS { ON | OFF }
  | ARITHABORT { ON | OFF }
  | COMPATIBILITY_LEVEL = { 140 | 130 | 120 | 110 | 100 }
  | CONCAT_NULL_YIELDS_NULL { ON | OFF }
  | NUMERIC_ROUNDABORT { ON | OFF }
  | QUOTED_IDENTIFIER { ON | OFF }
  | RECURSIVE_TRIGGERS { ON | OFF }
}

<temporal_history_retention>::= TEMPORAL_HISTORY_RETENTION { ON | OFF }

引数Arguments

database_name database_name
変更するデータベースの名前です。Is the name of the database to be modified.

CURRENTCURRENT
CURRENT を指定すると、現在のデータベースでアクションが実行されます。CURRENT runs the action in the current database. CURRENT は、すべてのコンテキスト内のすべてのオプションでサポートされるわけではありません。CURRENT isn't supported for all options in all contexts. CURRENT でエラーが発生した場合は、データベース名を指定してください。If CURRENT fails, provide the database name.

<auto_option> ::=<auto_option> ::=

自動オプションを制御します。Controls automatic options.

AUTO_CREATE_STATISTICS { ON | OFF }AUTO_CREATE_STATISTICS { ON | OFF }
ONON
クエリ プランを改善してクエリのパフォーマンスを向上させるために、クエリ オプティマイザーが必要に応じてクエリ述語内の列に対して 1 列ずつ統計を作成します。Query Optimizer creates statistics on single columns in query predicates, as necessary, to improve query plans and query performance. これらの 1 列ずつの統計は、クエリ オプティマイザーがクエリをコンパイルする場合に作成されます。These single-column statistics are created when Query Optimizer compiles queries. 1 列ずつの統計は、まだ既存の統計オブジェクトの最初の列になっていない列についてのみ作成されます。The single-column statistics are created only on columns that are not already the first column of an existing statistics object.

既定値は ON です。The default is ON. ほとんどのデータベースで既定の設定を使用することをお勧めします。We recommend that you use the default setting for most databases.

OFFOFF
クエリ オプティマイザーがクエリをコンパイルするときにクエリ述語内の列の 1 列ずつの統計が作成されません。Query Optimizer doesn't create statistics on single columns in query predicates when it's compiling queries. このオプションを OFF に設定すると、最適ではないクエリ プランが作成されて、クエリのパフォーマンスが低下することがあります。Setting this option to OFF can cause suboptimal query plans and degraded query performance.

sys.databases カタログ ビューの is_auto_create_stats_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_create_stats_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoCreateStatistics プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoCreateStatistics property of the DATABASEPROPERTYEX function.

詳細については、「統計」の「統計オプション」セクションを参照してください。For more information, see the "Statistics options" section in Statistics.

INCREMENTAL = ON | OFF INCREMENTAL = ON | OFF
AUTO_CREATE_STATISTICS を ON に設定し、INCREMENTAL を ON に設定します。Set AUTO_CREATE_STATISTICS to ON, and set INCREMENTAL to ON. 増分統計がサポートされている場合、この設定で、自動的に作成される統計情報は、常に増分として作成されます。This setting creates automatically created stats as incremental whenever incremental stats are supported. 既定値は OFF です。The default value is OFF. 詳しくは、「CREATE STATISTICS」をご覧ください。For more information, see CREATE STATISTICS.

AUTO_SHRINK { ON | OFF }AUTO_SHRINK { ON | OFF }
ONON
データベース ファイルを定期的な圧縮処理の対象とします。The database files are candidates for periodic shrinking.

データ ファイルとログ ファイルの両方を、自動的に圧縮できます。Both data file and log files can be automatically shrunk. AUTO_SHRINK では、データベースを単純復旧モデルに設定している場合、またはログをバックアップしている場合にのみ、トランザクション ログのサイズが圧縮されます。AUTO_SHRINK reduces the size of the transaction log only if you set the database to SIMPLE recovery model or if you back up the log. OFF: 未使用領域の定期チェックの際に、データベース ファイルは自動的に圧縮されません。When set to OFF, the database files aren't automatically shrunk during periodic checks for unused space.

AUTO_SHRINK オプションを使用すると、ファイル領域の 25% を超える領域が未使用の場合にファイルが圧縮されます。The AUTO_SHRINK option causes files to be shrunk when more than 25 percent of the file contains unused space. このオプションを指定すると、ファイルは 2 つのサイズのいずれかまで縮小されます。The option causes the file to shrink to one of two sizes. 次のいずれか大きい方に縮小されます。It shrinks to whichever is larger:

  • ファイルの 25% が未使用領域であるサイズThe size where 25 percent of the file is unused space
  • ファイルが作成されたときのサイズThe size of the file when it was created

読み取り専用データベースは圧縮できません。You can't shrink a read-only database.

OFFOFF
データベース ファイルは、未使用領域の定期的なチェックの際に、自動的に圧縮されません。The database files are not automatically shrunk during periodic checks for unused space.

sys.databases カタログ ビューの is_auto_shrink_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_shrink_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoShrink プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoShrink property of the DATABASEPROPERTYEX function.

注意

AUTO_SHRINK オプションは、包含データベースでは使用できません。The AUTO_SHRINK option isn't available in a Contained Database.

AUTO_UPDATE_STATISTICS { ON | OFF }AUTO_UPDATE_STATISTICS { ON | OFF }
ONON
クエリで使用される場合、および統計が古くなっている可能性がある場合に、クエリ オプティマイザーによって更新されるように指定します。Specifies that Query Optimizer updates statistics when they're used by a query and when they might be out-of-date. 挿入、更新、削除、またはマージの各操作によってテーブルまたはインデックス付きビューのデータの分布が変わると、統計は古くなったと判断されます。Statistics become out-of-date after insert, update, delete, or merge operations change the data distribution in the table or indexed view. クエリ オプティマイザーでは、統計が前回更新されてから発生したデータ変更の数をカウントし、その変更の数をしきい値と比較することで、統計が古くなっている可能性がないかを判断します。Query Optimizer determines when statistics might be out-of-date by counting the number of data modifications since the last statistics update and comparing the number of modifications to a threshold. このしきい値は、テーブルまたはインデックス付きビューの行数に基づいて決められます。The threshold is based on the number of rows in the table or indexed view.

クエリ オプティマイザーによる古い統計の確認は、クエリをコンパイルする前と、キャッシュされたクエリ プランを実行する前に行われます。Query Optimizer checks for out-of-date statistics before it compiles a query and runs a cached query plan. クエリ オプティマイザーでは、古くなっている可能性がある統計を判断するため、クエリ述語内の列、テーブル、インデックス付きビューが使用されます。Query Optimizer uses the columns, tables, and indexed views in the query predicate to determine which statistics might be out-of-date. この情報は、クエリがコンパイルされる前にクエリ オプティマイザーによって判断されます。Query Optimizer determines this information before it compiles a query. キャッシュされたクエリ プランを実行する前は、データベース エンジンDatabase Engine で、クエリ プランが最新の統計を参照しているかどうかが確認されます。Before running a cached query plan, the データベース エンジンDatabase Engine verifies that the query plan references up-to-date statistics.

AUTO_UPDATE_STATISTICS オプションは、インデックスに対して作成された統計、クエリ述語内の列に対して 1 列ずつ作成された統計、および CREATE STATISTICS ステートメントを使用して作成された統計に適用されます。The AUTO_UPDATE_STATISTICS option applies to statistics created for indexes, single-columns in query predicates, and statistics that are created by using the CREATE STATISTICS statement. また、フィルター選択された統計情報にも適用されます。This option also applies to filtered statistics.

既定値は ON です。The default is ON. ほとんどのデータベースで既定の設定を使用することをお勧めします。We recommend that you use the default setting for most databases.

統計を同期的に更新するか非同期的に更新するかを指定するには、AUTO_UPDATE_STATISTICS_ASYNC オプションを使用します。Use the AUTO_UPDATE_STATISTICS_ASYNC option to specify whether the statistics are updated synchronously or asynchronously.

OFFOFF
統計がクエリで使用されるときに、クエリ オプティマイザーによって統計が更新されないことを指定します。Specifies that Query Optimizer doesn't update statistics when they're used by a query. また、統計が古くなっている可能性がある場合は、クエリオプティマイザーによって更新されません。Query Optimizer also doesn't update statistics when they might be out-of-date. このオプションを OFF に設定すると、最適ではないクエリ プランが作成されて、クエリのパフォーマンスが低下することがあります。Setting this option to OFF can cause suboptimal query plans and degraded query performance.

sys.databases カタログ ビューの is_auto_update_stats_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_update_stats_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoUpdateStatistics プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoUpdateStatistics property of the DATABASEPROPERTYEX function.

詳細については、「統計」の「データベース全体の統計オプションの使用」セクションを参照してください。For more information, see the section "Using the database-wide statistics options" in Statistics.

AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }AUTO_UPDATE_STATISTICS_ASYNC { ON | OFF }
ONON
AUTO_UPDATE_STATISTICS オプションの統計の更新を非同期更新にするように指定します。Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are asynchronous. クエリ オプティマイザーでは、統計の更新が完了するのを待たずにクエリをコンパイルします。Query Optimizer doesn't wait for statistics updates to complete before it compiles queries.

AUTO_UPDATE_STATISTICS が ON に設定されていなければ、このオプションを ON に設定しても、効果はありません。Setting this option to ON has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

既定では、AUTO_UPDATE_STATISTICS_ASYNC オプションは OFF に設定されており、クエリ オプティマイザーによる統計は同期更新となります。By default, the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF, and Query Optimizer updates statistics synchronously.

OFFOFF
AUTO_UPDATE_STATISTICS オプションの統計の更新を同期更新にするように指定します。Specifies that statistics updates for the AUTO_UPDATE_STATISTICS option are synchronous. クエリ オプティマイザーでは、統計の更新が完了するのを待ってからクエリをコンパイルします。Query Optimizer waits for statistics updates to complete before it compiles queries.

AUTO_UPDATE_STATISTICS が ON に設定されていなければ、このオプションを OFF に設定しても、効果はありません。Setting this option to OFF has no effect unless AUTO_UPDATE_STATISTICS is set to ON.

sys.databases カタログ ビューの is_auto_update_stats_async_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_update_stats_async_on column in the sys.databases catalog view.

統計の同期更新と非同期更新をそれぞれどのような場合に使用するのかについては、「統計」の「データベース全体の統計オプションの使用」セクションを参照してください。For more information that describes when to use synchronous or asynchronous statistics updates, see the section "Using the database-wide statistics options" in Statistics.

<automatic_tuning_option> ::= <automatic_tuning_option> ::=
適用対象: SQL Server 2017 (14.x)SQL Server 2017 (14.x)Applies to: SQL Server 2017 (14.x)SQL Server 2017 (14.x)

FORCE_LAST_GOOD_PLAN 自動調整オプションを有効または無効にします。Enables or disables FORCE_LAST_GOOD_PLAN Automatic tuning option.

FORCE_LAST_GOOD_PLAN = { ON | OFF }FORCE_LAST_GOOD_PLAN = { ON | OFF }
ONON
新しいクエリ プランがパフォーマンスの低下を引き起こしている Transact-SQLTransact-SQL クエリに対して、データベース エンジンDatabase Engine では最後の既知の正常なプランが自動的に強制されます。The データベース エンジンDatabase Engine automatically forces the last known good plan on the Transact-SQLTransact-SQL queries where new query plan causes performance regressions. データベース エンジンDatabase Engine では、強制プランを使用する Transact-SQLTransact-SQL クエリのクエリ パフォーマンスが継続的に監視されます。The データベース エンジンDatabase Engine continuously monitors query performance of the Transact-SQLTransact-SQL query with the forced plan. パフォーマンスが向上した場合、データベース エンジンDatabase Engine では最後の既知の正常なプランの使用が続けられます。If there are performance gains, the データベース エンジンDatabase Engine will keep using last known good plan. パフォーマンスの向上が検出されない場合、データベース エンジンDatabase Engine は新しいクエリ プランを生成します。If performance gains are not detected, the データベース エンジンDatabase Engine will produce a new query plan. クエリ ストアが有効でない場合、または読み取り/書き込みモードでない場合は、ステートメントは失敗します。The statement will fail if the Query Store isn't enabled or if it's not in Read-Write mode.

OFFOFF
データベース エンジンDatabase Engine は、sys.dm_db_tuning_recommendations ビューのクエリ プランの変更によって引き起こされる、潜在的なクエリ パフォーマンスの低下をレポートします。The データベース エンジンDatabase Engine reports potential query performance regressions caused by query plan changes in sys.dm_db_tuning_recommendations view. ただし、これらの推奨事項は自動的には適用されません。However, these recommendations are not automatically applied. ユーザーは、ビューに表示される Transact-SQLTransact-SQL スクリプトを適用することによって、アクティブな推奨事項を監視し、特定された問題を解決できます。Users can monitor active recommendations and fix identified problems by applying Transact-SQLTransact-SQL scripts that are shown in the view. これが既定値です。This is the default value.

<change_tracking_option> ::=<change_tracking_option> ::=

変更の追跡のオプションを制御します。Controls change tracking options. 変更の追跡の有効化、オプションの設定、オプションの変更、および変更の追跡の無効化が可能です。You can enable change tracking, set options, change options, and disable change tracking. 例については、後の「例」のセクションをご覧ください。For examples, see the "Examples" section later in this article.

ONON
データベースの変更の追跡を有効にします。Enables change tracking for the database. 変更の追跡を有効にすると、AUTO CLEANUP オプションと CHANGE RETENTION オプションも設定できます。When you enable change tracking, you can also set the AUTO CLEANUP and CHANGE RETENTION options.

AUTO_CLEANUP = { ON | OFF }AUTO_CLEANUP = { ON | OFF }
ONON
指定した保有期間を過ぎると、変更追跡情報が自動的に削除されます。Change tracking information is automatically removed after the specified retention period.

OFFOFF
変更追跡データはデータベースから削除されません。Change tracking data isn't removed from the database.

CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }CHANGE_RETENTION = retention_period { DAYS | HOURS | MINUTES }
データベースに変更追跡情報を保持する最低限の期間を指定します。Specifies the minimum period for keeping change tracking information in the database. データは、AUTO_CLEANUP の値が ON のときにのみ削除されます。Data is removed only when the AUTO_CLEANUP value is ON.

retention_period は、保有期間の数値部分を指定する整数です。retention_period is an integer that specifies the numerical component of the retention period.

既定の保有期間は 2 日です。The default retention period is 2 days. 最小保有期間は 1 分です。The minimum retention period is 1 minute. 保有期間の既定の型は DAYS です。The default retention type is DAYS.

OFFOFF
データベースの変更の追跡を無効にします。Disables change tracking for the database. データベースの変更の追跡を無効にする前に、すべてのテーブルで変更の追跡を無効にしてください。Disable change tracking on all tables before you disable change tracking off the database.

<cursor_option> ::=<cursor_option> ::=

カーソル オプションを制御します。Controls cursor options.

CURSOR_CLOSE_ON_COMMIT { ON | OFF }CURSOR_CLOSE_ON_COMMIT { ON | OFF }
ONON
トランザクションをコミットまたはロール バックしたときに開いていたカーソルはすべて閉じられます。Any cursors open when you commit or roll back a transaction are closed.

OFFOFF
トランザクションがコミットされても、カーソルは開いたままになります。トランザクションをロールバックすると、INSENSITIVE または STATIC として定義されているカーソルを除き、すべてのカーソルが閉じます。Cursors remain open when a transaction is committed; rolling back a transaction closes any cursors except those defined as INSENSITIVE or STATIC.

SET ステートメントを使用した接続レベルの設定は、CURSOR_CLOSE_ON_COMMIT の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for CURSOR_CLOSE_ON_COMMIT. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの CURSOR_CLOSE_ON_COMMIT を OFF に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting CURSOR_CLOSE_ON_COMMIT to OFF for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET CURSOR_CLOSE_ON_COMMIT」をご覧ください。For more information, see SET CURSOR_CLOSE_ON_COMMIT.

sys.databases カタログ ビューの is_cursor_close_on_commit_on 列または DATABASEPROPERTYEX 関数の IsCloseCursorsOnCommitEnabled プロパティを調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_cursor_close_on_commit_on column in the sys.databases catalog view or the IsCloseCursorsOnCommitEnabled property of the DATABASEPROPERTYEX function. 接続が切断されたときだけカーソルが暗黙的に割り当てを解除されます。The cursor is implicitly deallocated only at disconnect. 詳しくは、「DECLARE CURSOR」をご覧ください。For more information, see DECLARE CURSOR.

<db_encryption_option> ::=<db_encryption_option> ::=

データベース暗号化の状態を制御します。Controls the database encryption state.

ENCRYPTION { ON | OFF }ENCRYPTION { ON | OFF }
データベースを暗号化する (ON) か、暗号化しない (OFF) かを設定します。Sets the database to be encrypted (ON) or not encrypted (OFF). データベース暗号化について詳しくは、「透過的なデータ暗号化」および「Azure SQL Database での Transparent Data Encryption」をご覧ください。For more information about database encryption, see Transparent Data Encryption, and Transparent Data Encryption with Azure SQL Database.

データベース レベルで暗号化を有効にすると、すべてのファイル グループが暗号化されます。When encryption is enabled at the database level, all file groups will be encrypted. すべての新しいファイル グループに、その暗号化プロパティが継承されます。Any new file groups will inherit the encrypted property. データベースに READ ONLY に設定されているファイル グループがあると、データベースの暗号化操作は失敗します。If any file groups in the database are set to READ ONLY, the database encryption operation will fail.

データベースの暗号化の状態を確認するには、sys.dm_database_encryption_keys 動的管理ビューを使用します。You can see the encryption state of the database by using the sys.dm_database_encryption_keys dynamic management view.

<db_update_option> ::=<db_update_option> ::=

データベースで更新を許可するかどうかを制御します。Controls whether updates are allowed on the database.

READ_ONLYREAD_ONLY
ユーザーは、データベースのデータを読み取ることができますが、変更はできません。Users can read data from the database but not modify it.

注意

クエリのパフォーマンスを向上させるには、データベースを READ_ONLY に設定する前に統計を更新します。To improve query performance, update statistics before setting a database to READ_ONLY. データベースを READ_ONLY に設定した後に追加の統計が必要な場合は、データベース エンジンDatabase Engine によって統計が tempdb に作成されます。If additional statistics are needed after a database is set to READ_ONLY, the データベース エンジンDatabase Engine will create statistics in tempdb. 読み取り専用データベースの統計について詳しくは、「統計」をご覧ください。For more information about statistics for a read-only database, see Statistics.

READ_WRITEREAD_WRITE
データベースに対して読み取りおよび書き込み操作を行うことができます。The database is available for read and write operations.

この状態を変更するには、データベースに対する排他的アクセスが必要になります。To change this state, you must have exclusive access to the database.

<db_user_access_option> ::=<db_user_access_option> ::=

データベースへのユーザー アクセスを制御します。Controls user access to the database.

RESTRICTED_USERRESTRICTED_USER
db_owner 固定データベース ロール、dbcreator 固定サーバー ロール、sysadmin 固定サーバー ロールのメンバーだけにデータベースへの接続を許可します。ただし、数に制限はありません。Allows for only members of the db_owner fixed database role and dbcreator and sysadmin fixed server roles to connect to the database, but doesn't limit their number. データベースに対するすべての接続は、ALTER DATABASE ステートメントの終了句で指定した時間枠内に接続解除されます。All connections to the database are disconnected in the timeframe specified by the termination clause of the ALTER DATABASE statement. データベースが RESTRICTED_USER 状態に移行すると、資格のないユーザーによる接続の試みは拒否されます。After the database has transitioned to the RESTRICTED_USER state, connection attempts by unqualified users are refused. RESTRICTED_USER は、SQL Database マネージド インスタンスでは変更できません。RESTRICTED_USER can't be modified with SQL Database managed instance.

MULTI_USERMULTI_USER
データベースに接続するための適切な権限を持つすべてのユーザーが許可されます。All users that have the appropriate permissions to connect to the database are allowed.

sys.databases カタログ ビューの user_access 列または DATABASEPROPERTYEX 関数の UserAccess プロパティを調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the user_access column in the sys.databases catalog view or the UserAccess property of the DATABASEPROPERTYEX function.

<delayed_durability_option> ::=<delayed_durability_option> ::=

トランザクションを完全持続性または遅延持続性のどちらとしてコミットするかどうかを制御します。Controls whether transactions commit fully durable or delayed durable.

DISABLEDDISABLED
SET DISABLED 以後のトランザクションはすべて完全持続性です。All transactions following SET DISABLED are fully durable. ATOMIC ブロックまたは COMMIT ステートメントで設定された持続性オプションは無視されます。Any durability options set in an atomic block or commit statement are ignored.

ALLOWEDALLOWED
SET ALLOWED 以後のトランザクションはすべて、ATOMIC ブロックまたは COMMIT ステートメントで設定された持続性オプションに応じて、完全持続性または遅延持続性になります。All transactions following SET ALLOWED are either fully durable or delayed durable, depending upon the durability option set in the atomic block or commit statement.

FORCED: 以後のトランザクションはすべて遅延持続性になります。FORCED All transactions following SET FORCED are delayed durable. ATOMIC ブロックまたは COMMIT ステートメントで設定された持続性オプションは無視されます。Any durability options set in an atomic block or commit statement are ignored.

<PARAMETERIZATION_option> ::=<PARAMETERIZATION_option> ::=

パラメーター化オプションを制御します。Controls the parameterization option.

PARAMETERIZATION { SIMPLE | FORCED }PARAMETERIZATION { SIMPLE | FORCED }
SIMPLESIMPLE
クエリは、データベースの既定の動作に基づいてパラメーター化されます。Queries are parameterized based on the default behavior of the database.

FORCEDFORCED
SQL ServerSQL Server は、データベース内にあるすべてのクエリをパラメーター化します。parameterizes all queries in the database.

sys.databases カタログ ビューの is_parameterization_forced 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_parameterization_forced column in the sys.databases catalog view.

<query_store_options> ::=<query_store_options> ::=

ON | OFF | CLEAR [ ALL ]ON | OFF | CLEAR [ ALL ]
このデータベースでクエリ ストアを有効にするかどうかを制御します。また、クエリ ストアの内容の削除も制御します。Controls whether the Query Store is enabled in this database, and also controls removing the contents of the Query Store.

ONON
クエリのストアを有効にします。Enables the Query Store.

OFFOFF
クエリのストアを無効にします。Disables the Query Store. これが既定値です。This is the default value.

CLEARCLEAR
クエリ ストアの内容を削除します。Remove the contents of the Query Store.

OPERATION_MODEOPERATION_MODE
クエリのストアの操作モードについて説明します。Describes the operation mode of the Query Store. 有効な値は、READ_ONLY、READ_WRITE はします。Valid values are READ_ONLY and READ_WRITE. READ_WRITE モードでは、クエリのストアでクエリ プランとランタイム実行の統計情報が収集され、保持されます。In READ_WRITE mode, the Query Store collects and persists query plan and runtime execution statistics information. READ_ONLY モードでは、クエリ ストアから情報を読み取ることはできますが、新しい情報は追加されません。In READ_ONLY mode, information can be read from the Query Store, but new information isn't added. クエリのストアを変更は、最大値が割り当てられているクエリのストアの領域が不足している場合は操作モードを READ_ONLY にします。If the maximum allocated space of the Query Store has been exhausted, the Query Store will change is operation mode to READ_ONLY.

CLEANUP_POLICYCLEANUP_POLICY
クエリ ストアのデータ保持ポリシーを表します。Describes the data retention policy of the Query Store. STALE_QUERY_THRESHOLD_DAYS により、クエリ ストアにクエリの情報が保持される日数が決定されます。STALE_QUERY_THRESHOLD_DAYS determines the number of days for which the information for a query is kept in the Query Store. STALE_QUERY_THRESHOLD_DAYS は bigint 型です。STALE_QUERY_THRESHOLD_DAYS is type bigint.

DATA_FLUSH_INTERVAL_SECONDSDATA_FLUSH_INTERVAL_SECONDS
クエリ ストアに書き込まれるデータがディスクに永続化される頻度を決定します。Determines the frequency at which data written to the Query Store is persisted to disk. パフォーマンスを最適化するため、クエリ ストアで収集したデータは非同期的にディスクに書き込まれます。To optimize for performance, data collected by the Query Store is asynchronously written to the disk. この非同期転送の頻度は、DATA_FLUSH_INTERVAL_SECONDS 引数を使用して構成します。The frequency at which this asynchronous transfer occurs is configured by using the DATA_FLUSH_INTERVAL_SECONDS argument. DATA_FLUSH_INTERVAL_SECONDS は bigint 型です。DATA_FLUSH_INTERVAL_SECONDS is type bigint.

MAX_STORAGE_SIZE_MBMAX_STORAGE_SIZE_MB
クエリ ストアに割り当てる領域を指定します。Determines the space allocated to the Query Store. MAX_STORAGE_SIZE_MB は bigint 型です。MAX_STORAGE_SIZE_MB is type bigint.

INTERVAL_LENGTH_MINUTESINTERVAL_LENGTH_MINUTES
クエリのストアにランタイムの実行の統計データを集計する時間間隔を決定します。Determines the time interval at which runtime execution statistics data is aggregated into the Query Store. 領域使用量を最適化するため、ランタイム統計情報ストアのランタイム実行統計情報は、一定の時間枠で集計されます。To optimize for space usage, the runtime execution statistics in the runtime stats store are aggregated over a fixed time window. この固定間隔の構成に、INTERVAL_LENGTH_MINUTES 引数を使用します。This fixed time window is configured by using the INTERVAL_LENGTH_MINUTES argument. INTERVAL_LENGTH_MINUTES は bigint 型です。INTERVAL_LENGTH_MINUTES is type bigint.

SIZE_BASED_CLEANUP_MODESIZE_BASED_CLEANUP_MODE
データの総量が最大サイズに近づいたときに、クリーンアップを自動的にアクティブにするかどうかを制御します。Controls whether cleanup will be automatically activated when the total amount of data gets close to maximum size.

OFFOFF
サイズ ベースのクリーンアップは自動的にアクティブ化されません。Size-based cleanup won't be automatically activated.

AUTOAUTO
ディスクのサイズが max_storage_size_mb の 90% に達すると、サイズ ベースのクリーンアップが自動的にアクティブ化されます。Size-based cleanup will be automatically activated when size on disk reaches 90% of max_storage_size_mb. サイズのクリーンアップでは、まず最も安価で最も古いクエリを削除します。Size-based cleanup removes the least expensive and oldest queries first. max_storage_size_mb の約 80% で停止します。It stops at approximately 80% of max_storage_size_mb. これは既定の構成値です。This is the default configuration value.

SIZE_BASED_CLEANUP_MODE は nvarchar 型です。SIZE_BASED_CLEANUP_MODE is type nvarchar.

QUERY_CAPTURE_MODEQUERY_CAPTURE_MODE
現在アクティブなクエリのキャプチャ モードを指定します。Designates the currently active query capture mode.

ALLALL
すべてのクエリがキャプチャされます。All queries are captured.

AUTOAUTO
実行の数とリソースの消費量に基づいて関連するクエリがキャプチャされます。Capture relevant queries based on execution count and resource consumption. これは Azure SQL データベースAzure SQL Database の既定の構成値です。This is the default configuration value for Azure SQL データベースAzure SQL Database.

なしNONE
新しいクエリのキャプチャを停止します。Stop capturing new queries. クエリ ストアは、既にキャプチャされたクエリのコンパイルと実行時の統計情報を収集し続けます。The Query Store will continue to collect compile and runtime statistics for queries that were captured already. 重要なクエリがキャプチャされない可能性があるため、この構成は慎重に使用してください。Use this configuration with caution since you may miss capturing important queries.

QUERY_CAPTURE_MODE は nvarchar 型です。QUERY_CAPTURE_MODE is type nvarchar.

max_plans_per_queryMAX_PLANS_PER_QUERY
各クエリに対して保持の計画の最大数を表す整数。An integer representing the maximum number of plans maintained for each query. 既定値は 200 です。Default is 200.

<snapshot_option> ::=<snapshot_option> ::=

トランザクション分離レベルを示します。Determines the transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION { ON | OFF }ALLOW_SNAPSHOT_ISOLATION { ON | OFF }
ONON
データベース レベルでのスナップショット オプションを有効にします。Enables the Snapshot option at the database level. 有効にした場合、スナップショット分離を使用するトランザクションがなくても、DML ステートメントによって、行バージョンの生成が開始されます。When it's enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. このオプションを有効にすると、トランザクションで SNAPSHOT トランザクション分離レベルを指定できます。After this option is enabled, transactions can specify the SNAPSHOT transaction isolation level. SNAPSHOT 分離レベルでトランザクションが実行されると、すべてのステートメントはトランザクション開始時のデータのスナップショットを参照します。When a transaction runs at the SNAPSHOT isolation level, all statements see a snapshot of data as it exists at the start of the transaction. SNAPSHOT 分離レベルで実行されているトランザクションが複数のデータベースのデータにアクセスする場合は、すべてのデータベースで ALLOW_SNAPSHOT_ISOLATION が ON に設定されている必要があります。ALLOW_SNAPSHOT_ISOLATION が OFF になっているデータベース内のテーブルにアクセスする場合は、トランザクション内の各ステートメントで、FROM 句内のすべての参照に対してロック ヒントを使用する必要があります。If a transaction running at the SNAPSHOT isolation level accesses data in multiple databases, either ALLOW_SNAPSHOT_ISOLATION must be set to ON in all the databases, or each statement in the transaction must use locking hints on any reference in a FROM clause to a table in a database where ALLOW_SNAPSHOT_ISOLATION is OFF.

OFFOFF
データベース レベルでのスナップショット オプションを無効にします。Turns off the Snapshot option at the database level. トランザクションでは、SNAPSHOT トランザクション分離レベルを指定できません。Transactions can't specify the SNAPSHOT transaction isolation level.

ALLOW_SNAPSHOT_ISOLATION を新しい状態に (ON から OFF へ、または OFF から ON へ) 設定した場合、ALTER DATABASE は、データベース内にあるすべての既存のトランザクションがコミットされるまで、呼び出し元に制御を返しません。When you set ALLOW_SNAPSHOT_ISOLATION to a new state (from ON to OFF, or from OFF to ON), ALTER DATABASE doesn't return control to the caller until all existing transactions in the database are committed. データベースが既に ALTER DATABASE ステートメントで指定した状態にある場合には、制御は呼び出し元に直ちに返されます。If the database is already in the state specified in the ALTER DATABASE statement, control is returned to the caller immediately. ALTER DATABASE ステートメントがすぐに制御を返さない場合には、sys.dm_tran_active_snapshot_database_transactions を使用して、長時間実行されているトランザクションがあるかどうかを確認できます。If the ALTER DATABASE statement doesn't return quickly, use sys.dm_tran_active_snapshot_database_transactions to determine whether there are long-running transactions. ALTER DATABASE ステートメントが取り消された場合、データベースは、ALTER DATABASE が開始された時点での状態に留まります。If the ALTER DATABASE statement is canceled, the database remains in the state it was in when ALTER DATABASE was started. sys.databases カタログ ビューに、データベース内のスナップショット分離トランザクションの状態が表示されます。The sys.databases catalog view indicates the state of snapshot-isolation transactions in the database. snapshot_isolation_state_desc = IN_TRANSITION_TO_ON の場合、ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF は 6 秒間待ってから、操作を再試行します。If snapshot_isolation_state_desc = IN_TRANSITION_TO_ON, ALTER DATABASE ALLOW_SNAPSHOT_ISOLATION OFF will pause six seconds and retry the operation.

データベースが OFFLINE の場合には、ALLOW_SNAPSHOT_ISOLATION の状態を変更できません。You can't change the state of ALLOW_SNAPSHOT_ISOLATION if the database is OFFLINE.

READ_ONLY のデータベースで ALLOW_SNAPSHOT_ISOLATION を設定すると、このデータベースが後に READ_WRITE に設定された場合でも、この設定が保持されます。If you set ALLOW_SNAPSHOT_ISOLATION in a READ_ONLY database, the setting will be kept if the database is later set to READ_WRITE.

master、model、msdb、および tempdb データベースでは、ALLOW_SNAPSHOT_ISOLATION 設定を変更できます。You can change the ALLOW_SNAPSHOT_ISOLATION settings for the master, model, msdb, and tempdb databases. tempdb でこの設定を変更すると、この設定は、データベース エンジンDatabase Engineのインスタンスが停止および再起動されるたびに保持されます。The setting is kept every time the instance of the データベース エンジンDatabase Engine is stopped and restarted if you change the setting for tempdb. model でこの設定を変更すると、この設定は、tempdb を除く新たに作成されたすべてのデータベースの既定値となります。If you change the setting for model, that setting becomes the default for any new databases that are created, except for tempdb.

master および msdb データベースでは、このオプションは既定で ON になります。The option is ON, by default, for the master and msdb databases.

sys.databases カタログ ビューの snapshot_isolation_state 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the snapshot_isolation_state column in the sys.databases catalog view.

READ_COMMITTED_SNAPSHOT { ON | OFF }READ_COMMITTED_SNAPSHOT { ON | OFF }
ONON
データベース レベルで READ COMMITTED スナップショット オプションを有効にします。Enables the Read-Committed Snapshot option at the database level. 有効にした場合、スナップショット分離を使用するトランザクションがなくても、DML ステートメントによって、行バージョンの生成が開始されます。When it's enabled, DML statements start generating row versions even when no transaction uses Snapshot Isolation. このオプションを有効にすると、READ COMMITTED 分離レベルを指定しているトランザクションは、ロックではなく、行のバージョン管理を使用します。After this option is enabled, the transactions specifying the READ COMMITTED isolation level use row versioning instead of locking. トランザクションが READ COMMITTED 分離レベルで実行されている場合、すべてのステートメントは、ステートメントの開始時に存在していたデータのスナップショットを参照します。All statements see a snapshot of data as it exists at the start of the statement when a transaction runs at the READ COMMITTED isolation level.

OFFOFF
データベース レベルでの Read Committed スナップショット オプションを無効にします。Turns off the Read-Committed Snapshot option at the database level. READ COMMITTED 分離レベルを指定しているトランザクションは、ロックを使用します。Transactions specifying the READ COMMITTED isolation level use locking.

READ_COMMITTED_SNAPSHOT を ON または OFF に設定するには、ALTER DATABASE コマンドを実行している接続以外にデータベースへのアクティブな接続が存在しないようにする必要があります。To set READ_COMMITTED_SNAPSHOT to ON or OFF, there must be no active connections to the database except for the connection running the ALTER DATABASE command. データベースがシングル ユーザー モードになっている必要はありません。However, the database doesn't have to be in single-user mode. データベースが OFFLINE の場合には、このオプションの状態は変更できません。You can't change the state of this option when the database is OFFLINE.

READ_ONLY のデータベースで READ_COMMITTED_SNAPSHOT を設定すると、このデータベースが後で READ_WRITE に設定された場合でも、この設定が保持されます。If you set READ_COMMITTED_SNAPSHOT in a READ_ONLY database, the setting will be kept when the database is later set to READ_WRITE.

master、tempdb、または msdb システム データベースでは、READ_COMMITTED_SNAPSHOT を ON に設定することはできません。READ_COMMITTED_SNAPSHOT can't be turned ON for the master, tempdb, or msdb system databases. model でこの設定を変更すると、この設定は、tempdb を除く新たに作成されたすべてのデータベースの既定値となります。If you change the setting for model, that setting becomes the default for any new databases created, except for tempdb.

sys.databases カタログ ビューの is_read_committed_snapshot_on 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_read_committed_snapshot_on column in the sys.databases catalog view.

警告

DURABILITY = SCHEMA_ONLY でテーブルが作成される場合、READ_COMMITTED_SNAPSHOT がその後 ALTER DATABASE を使用して変更されると、テーブル内のデータは失われます。When a table is created with DURABILITY = SCHEMA_ONLY, and READ_COMMITTED_SNAPSHOT is subsequently changed using ALTER DATABASE, data in the table will be lost.

MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT { ON | OFF }
ONON
トランザクション分離レベルが SNAPSHOT より低い分離レベルに設定されている場合は、メモリ最適化テーブル上で解釈されたすべての Transact-SQLTransact-SQL 操作が SNAPSHOT 分離レベルで実行されます。When the transaction isolation level is set to any isolation level lower than SNAPSHOT, all interpreted Transact-SQLTransact-SQL operations on memory-optimized tables are run under SNAPSHOT isolation. SNAPSHOT よりも低い分離レベルの例として、READ COMMITTED、READ UNCOMMITTEDREAD があります。Examples of isolation levels lower than snapshot are READ COMMITTED or READ UNCOMMITTED. このような操作は、トランザクション分離レベルがセッション レベルで明示的に設定されているか、既定値が暗黙的に使用されるかに関係なく実行されます。These operations run whether the transaction isolation level is set explicitly at the session level, or the default is used implicitly.

OFFOFF
メモリ最適化テーブル上で解釈された Transact-SQLTransact-SQL 操作のトランザクション分離レベルは引き上げられません。Doesn't elevate the transaction isolation level for interpreted Transact-SQLTransact-SQL operations on memory-optimized tables.

データベースが OFFLINE の場合には、MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT の状態を変更できません。You can't change the state of MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT if the database is OFFLINE.

既定値は OFF です。The default value is OFF.

sys.databases カタログ ビューの is_memory_optimized_elevate_to_snapshot_on 列を調べることでこのオプションの現在の設定を判断できます。The current setting of this option can be determined by examining the is_memory_optimized_elevate_to_snapshot_on column in the sys.databases catalog view.

<sql_option> ::=<sql_option> ::=

ANSI 準拠のオプションをデータベース レベルで制御します。Controls the ANSI compliance options at the database level.

ANSI_NULL_DEFAULT { ON | OFF }ANSI_NULL_DEFAULT { ON | OFF }
CREATE TABLE ステートメントまたは ALTER TABLE ステートメントで NULL を許可するかどうかが明示的に定義されていない場合に、列または CLR ユーザー定義型の既定値を NULL と NOT NULL のどちらにするかを指定します。Determines the default value, NULL or NOT NULL, of a column or CLR user-defined type for which the nullability isn't explicitly defined in CREATE TABLE or ALTER TABLE statements. 制約によって定義された列は、この設定に関係なく制約のルールに従います。Columns that are defined with constraints follow constraint rules whatever this setting may be.

ONON
既定値は NULL です。The default value is NULL.

OFFOFF
既定値は NOT NULL です。The default value is NOT NULL.

SET ステートメントを使用した接続レベルの設定は、ANSI_NULL_DEFAULT に関するデータベースレベルの既定の設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_NULL_DEFAULT. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_NULL_DEFAULT を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULL_DEFAULT to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_NULL_DFLT_ON」をご覧ください。For more information, see SET ANSI_NULL_DFLT_ON.

ANSI 互換性を確保するために、データベース オプション ANSI_NULL_DEFAULT を ON に設定すると、データベースの既定値が NULL に変更されます。For ANSI compatibility, setting the database option ANSI_NULL_DEFAULT to ON changes the database default to NULL.

sys.databases カタログ ビューの is_ansi_null_default_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_null_default_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiNullDefault プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiNullDefault property of the DATABASEPROPERTYEX function.

ANSI_NULLS { ON | OFF }ANSI_NULLS { ON | OFF }
ONON
null 値との比較結果は、すべて UNKNOWN になります。All comparisons to a null value evaluate to UNKNOWN.

OFFOFF
UNICODE 以外の値と null 値の比較結果は、両方の値が NULL である場合には TRUE になります。Comparisons of non-UNICODE values to a null value evaluate to TRUE if both values are NULL.

重要

今後のバージョンの SQL ServerSQL Server では、ANSI_NULLS が常に ON になり、このオプションを明示的に OFF に設定するすべてのアプリケーションでエラーが発生します。In a future version of SQL ServerSQL Server, ANSI_NULLS will always be ON and any applications that explicitly set the option to OFF will produce an error. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

SET ステートメントを使用した接続レベルの設定は、ANSI_NULLS の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for ANSI_NULLS. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_NULLS を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_NULLS to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_NULLS」をご覧ください。For more information, see SET ANSI_NULLS.

重要

SET ANSI_NULLS は、計算列やインデックス付きビューのインデックスを作成または変更する場合にも、ON に設定する必要があります。SET ANSI_NULLS also must be set to ON when you create or make changes to indexes on computed columns or indexed views.

sys.databases カタログ ビューの is_ansi_nulls_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_nulls_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiNullsEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiNullsEnabled property of the DATABASEPROPERTYEX function.

ANSI_PADDING { ON | OFF }ANSI_PADDING { ON | OFF }
ONON
比較を行う前に、文字列が同じ長さになるようにパディングされます。Strings are padded to the same length before conversion. また、varchar または nvarchar データ型に挿入される前にも、同じ長さになるようにパディングされます。Also padded to the same length before inserting to a varchar or nvarchar data type.

OFFOFF
文字値の末尾にある空白を varchar 型または nvarchar 型の列に挿入します。Inserts trailing blanks in character values into varchar or nvarchar columns. varbinary 型の列に挿入されたバイナリ値の末尾にある 0 はそのまま残されます。Also leaves trailing zeros in binary values that are inserted into varbinary columns. 列の長さに合わせるためにパディングされることはありません。Values aren't padded to the length of the column.

OFF を指定した場合、この設定は新しい列の定義にのみ影響します。When OFF is specified, this setting affects only the definition of new columns.

重要

今後のバージョンの SQL ServerSQL Server では、ANSI_PADDING が常に ON になり、このオプションを明示的に OFF に設定するすべてのアプリケーションでエラーが発生します。In a future version of SQL ServerSQL Server, ANSI_PADDING will always be ON and any applications that explicitly set the option to OFF will produce an error. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature. ANSI_PADDING は常に ON に設定することをお勧めします。We recommend that you always set ANSI_PADDING to ON. 計算列やインデックス付きビューのインデックスを作成または操作するときには、ANSI_PADDING を ON に設定する必要があります。ANSI_PADDING must be ON when you create or manipulate indexes on computed columns or indexed views.

char(n) および binary(n) 列が NULL を許容する場合は、ANSI_PADDING を ON に設定すると、列の長さに合うようにパディングされます。char(n) and binary(n) columns that allow for nulls are padded to the column length when ANSI_PADDING is set to ON. ANSI_PADDING を OFF に設定すると、末尾の空白および 0 は切り捨てられます。Trailing blanks and zeros are trimmed when ANSI_PADDING is OFF. char(n) および binary(n) 列が NULL を許容しない場合は、常に列の長さに合うようにパディングが行われます。char(n) and binary(n) columns that don't allow nulls are always padded to the length of the column.

SET ステートメントを使用した接続レベルの設定は、ANSI_PADDING に関するデータベースレベルの既定の設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database-level setting for ANSI_PADDING. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_PADDING を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_PADDING to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_PADDING」をご覧ください。For more information, see SET ANSI_PADDING.

sys.databases カタログ ビューの is_ansi_padding_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_padding_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiPaddingEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiPaddingEnabled property of the DATABASEPROPERTYEX function.

ANSI_WARNINGS { ON | OFF }ANSI_WARNINGS { ON | OFF }
ONON
0 除算などの状態になったときに、エラーまたは警告が発行されます。Errors or warnings are issued when conditions such as divide-by-zero occur. 集計関数に NULL 値が出現した場合にも、エラーと警告が発行されます。Errors and warnings are also issued when null values appear in aggregate functions.

OFFOFF
0 除算などの条件が発生しても、警告は発行されず、NULL 値が返されます。No warnings are raised and null values are returned when conditions such as divide-by-zero occur.

重要

SET ANSI_WARNINGS は、計算列やインデックス付きビューのインデックスを作成または変更する場合には、ON に設定する必要があります。SET ANSI_WARNINGS must be set to ON when you create or make changes to indexes on computed columns or indexed views.

SET ステートメントを使用した接続レベルの設定は、ANSI_WARNINGS の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for ANSI_WARNINGS. 既定では、ODBC クライアントと OLE DB クライアントは、セッションの ANSI_WARNINGS を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting ANSI_WARNINGS to ON for the session, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET ANSI_WARNINGS」をご覧ください。For more information, see SET ANSI_WARNINGS.

sys.databases カタログ ビューの is_ansi_warnings_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_ansi_warnings_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAnsiWarningsEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAnsiWarningsEnabled property of the DATABASEPROPERTYEX function.

ARITHABORT { ON | OFF }ARITHABORT { ON | OFF }
ONON
クエリ実行中にオーバーフロー エラーまたは 0 除算エラーが発生した場合に、クエリを終了します。A query is ended when an overflow or divide-by-zero error occurs during query execution.

OFFOFF
このようなエラーのいずれかが発生した場合に警告メッセージが表示されます。A warning message is displayed when one of these errors occurs. 警告が表示された場合でも、クエリ、バッチ、またはトランザクションは、エラーが発生しなかったかのように処理を続行します。The query, batch, or transaction continues to process as if no error occurred even if a warning is displayed.

重要

SET ARITHABORT は、計算列やインデックス付きビューのインデックスを作成または変更する場合には、ON に設定する必要があります。SET ARITHABORT must be set to ON when you create or make changes to indexes on computed columns or indexed views.

sys.databases カタログ ビューの is_arithabort_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_arithabort_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsArithmeticAbortEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsArithmeticAbortEnabled property of the DATABASEPROPERTYEX function.

COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 }COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 }
詳しくは、「ALTER DATABASE 互換性レベル」をご覧ください。For more information, see ALTER DATABASE Compatibility Level.

CONCAT_NULL_YIELDS_NULL { ON | OFF }CONCAT_NULL_YIELDS_NULL { ON | OFF }
ONON
オペランドのいずれかが NULL の場合、連結操作の結果は NULL になります。The result of a concatenation operation is NULL when either operand is NULL. たとえば、文字列 "This is" と NULL を連結すると、結果は "This is" ではなく NULL になります。For example, concatenating the character string "This is" and NULL causes the value NULL, instead of the value "This is".

OFFOFF
null 値は空の文字列として扱われます。The null value is treated as an empty character string.

重要

CONCAT_NULL_YIELDS_NULL は、計算列やインデックス付きビューのインデックスを作成または変更する場合には、ON に設定する必要があります。CONCAT_NULL_YIELDS_NULL must be set to ON when you create or make changes to indexes on computed columns or indexed views.

重要

今後のバージョンの SQL ServerSQL Server では、CONCAT_NULL_YIELDS_NULL が常に ON になり、このオプションを明示的に OFF に設定するすべてのアプリケーションでエラーが発生します。In a future version of SQL ServerSQL Server, CONCAT_NULL_YIELDS_NULL will always be ON and any applications that explicitly set the option to OFF will produce an error. 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

SET ステートメントを使用した接続レベルの設定は、CONCAT_NULL_YIELDS_NULL の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for CONCAT_NULL_YIELDS_NULL. 既定では、ODBC クライアントと OLE DB クライアントは、SQL ServerSQL Server のインスタンスに接続するときに、セッションの CONCAT_NULL_YIELDS_NULL を ON に設定する接続レベルの SET ステートメントを実行します。By default, ODBC and OLE DB clients issue a connection-level SET statement setting CONCAT_NULL_YIELDS_NULL to ON for the session when connecting to an instance of SQL ServerSQL Server. 詳しくは、「SET CONCAT_NULL_YIELDS_NULL」をご覧ください。For more information, see SET CONCAT_NULL_YIELDS_NULL.

sys.databases カタログ ビューの is_concat_null_yields_null_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_concat_null_yields_null_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsNullConcat プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsNullConcat property of the DATABASEPROPERTYEX function.

QUOTED_IDENTIFIER { ON | OFF }QUOTED_IDENTIFIER { ON | OFF }
ONON
識別子を囲む二重引用符を使用できます。Double quotation marks can be used to enclose delimited identifiers.

二重引用符で囲まれた文字列はすべて、オブジェクト識別子として解釈されます。All strings delimited by double quotation marks are interpreted as object identifiers. 引用符で囲まれた識別子は、Transact-SQLTransact-SQL の識別子の規則に従う必要はありません。Quoted identifiers don't have to follow the Transact-SQLTransact-SQL rules for identifiers. キーワードを含めることができます。また、Transact-SQLTransact-SQL 識別子には使用できない文字を含めることもできます。They can be keywords and can include characters not allowed in Transact-SQLTransact-SQL identifiers. 単一引用符 (') がリテラル文字列の一部になっている場合は、それを二重引用符 (") で表記できます。If a single quotation mark (') is part of the literal string, it can be represented by double quotation marks (").

OFFOFF
識別子を引用符で囲むことができず、Transact-SQLTransact-SQL の識別子に関するすべての規則に従う必要があります。Identifiers can't be in quotation marks and must follow all Transact-SQLTransact-SQL rules for identifiers. リテラルは単一引用符と二重引用符のどちらで区切ることもできます。Literals can be delimited by either single or double quotation marks.

SQL ServerSQL Server では識別子を角かっこ ([ ]) で囲むこともできます。also allows for identifiers to be delimited by square brackets ([ ]). 角かっこで囲まれた識別子は、QUOTED_IDENTIFIER 設定に関係なくいつでも使用できます。Bracketed identifiers can always be used, whatever the QUOTED_IDENTIFIER setting is. 詳細については、「データベース識別子」を参照してください。For more information, see Database Identifiers.

このオプションは、テーブルの作成時に、常に ON としてテーブルのメタデータに格納されます。When a table is created, the QUOTED IDENTIFIER option is always stored as ON in the metadata of the table. このオプションは、テーブルの作成時にオプションが OFF に設定された場合でも格納されます。The option is stored even if the option is set to OFF when the table is created.

SET ステートメントを使用した接続レベルの設定は、QUOTED_IDENTIFIER の既定のデータベース設定をオーバーライドします。Connection-level settings that are set by using the SET statement override the default database setting for QUOTED_IDENTIFIER. 既定では、ODBC クライアントと OLE DB QUOTED_IDENTIFIER を ON に設定する接続レベルの SET ステートメントを発行します。ODBC and OLE DB clients issue a connection-level SET statement setting QUOTED_IDENTIFIER to ON, by default. SQL ServerSQL Server のインスタンスに接続すると、クライアントはステートメントを実行します。The clients run the statement when you connect to an instance of SQL ServerSQL Server. 詳しくは、「SET QUOTED_IDENTIFIER」をご覧ください。For more information, see SET QUOTED_IDENTIFIER.

sys.databases カタログ ビューの is_quoted_identifier_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_quoted_identifier_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsQuotedIdentifiersEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsQuotedIdentifiersEnabled property of the DATABASEPROPERTYEX function.

NUMERIC_ROUNDABORT { ON | OFF }NUMERIC_ROUNDABORT { ON | OFF }
ONON
式で有効桁数の損失が発生する場合にエラーが生成されます。An error is generated when loss of precision occurs in an expression.

OFFOFF
有効桁数の損失が発生してもエラー メッセージが生成されず、結果を格納する列または変数の有効桁数に丸められます。Loss of precision doesn't generate an error message, and the result is rounded to the precision of the column or variable storing the result.

重要

NUMERIC_ROUNDABORT は、計算列やインデックス付きビューのインデックスを作成または変更する場合は、OFF に設定する必要があります。NUMERIC_ROUNDABORT must be set to OFF when you create or make changes to indexes on computed columns or indexed views.

sys.databases カタログ ビューの is_numeric_roundabort_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_numeric_roundabort_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsNumericRoundAbortEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsNumericRoundAbortEnabled property of the DATABASEPROPERTYEX function.

RECURSIVE_TRIGGERS { ON | OFF }RECURSIVE_TRIGGERS { ON | OFF }
ONON
AFTER トリガーの再帰呼び出しを実行できるようになります。Recursive firing of AFTER triggers is allowed.

OFFOFF
sys.databases カタログ ビューの is_recursive_triggers_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsRecursiveTriggersEnabled プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

注意

RECURSIVE_TRIGGERS に OFF に設定されている場合、直接再帰呼び出しのみが回避されます。Only direct recursion is prevented when RECURSIVE_TRIGGERS is set to OFF. 間接再帰呼び出しを無効にするには、nested triggers サーバー オプションを 0 に設定する必要があります。To disable indirect recursion, you must also set the nested triggers server option to 0.

sys.databases カタログ ビューの is_recursive_triggers_on 列または DATABASEPROPERTYEX 関数の IsRecursiveTriggersEnabled プロパティを調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_recursive_triggers_on column in the sys.databases catalog view or the IsRecursiveTriggersEnabled property of the DATABASEPROPERTYEX function.

<target_recovery_time_option> ::=<target_recovery_time_option> ::=

間接的なチェックポイントの生成頻度をデータベースごとに指定します。Specifies the frequency of indirect checkpoints on a per-database basis. SQL Server 2016 (13.x)SQL Server 2016 (13.x) 以降、新しいデータベースに対する既定値は 1 分であり、これはデータベースが間接チェックポイントを使用することを示します。Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x) the default value for new databases is 1 minute, which indicates database will use indirect checkpoints. 旧バージョンの既定値は 0 です。これは、データベースが自動チェックポイントを使用することを示し、その頻度はサーバー インスタンスの復旧間隔の設定によって異なります。For older versions the default is 0, which indicates that the database will use automatic checkpoints, whose frequency depends on the recovery interval setting of the server instance. MicrosoftMicrosoft では、ほとんどのシステムに対して 1 分をお勧めします。recommends 1 minute for most systems.

TARGET_RECOVERY_TIME = target_recovery_time { SECONDS | MINUTES }TARGET_RECOVERY_TIME =target_recovery_time { SECONDS | MINUTES }
target_recovery_time target_recovery_time
クラッシュが発生した場合、指定したデータベースが復旧に要する時間の上限を指定します。Specifies the maximum bound on the time to recover the specified database in the event of a crash.

SECONDSSECONDS
target_recovery_time が秒単位で表されていることを示します。Indicates that target_recovery_time is expressed as the number of seconds.

MINUTESMINUTES
target_recovery_time が分単位で表されていることを示します。Indicates that target_recovery_time is expressed as the number of minutes.

間接的なチェックポイントについて詳しくは、「データベース チェックポイント」をご覧ください。For more information about indirect checkpoints, see Database Checkpoints.

ROLLBACK AFTER "整数" [SECONDS] | ROLLBACK IMMEDIATEROLLBACK AFTER integer [SECONDS] | ROLLBACK IMMEDIATE
指定した秒数の後、または直ちにロールバックするかどうかを指定します。Specifies whether to roll back after the specified number of seconds or immediately.

NO_WAITNO_WAIT
要求されたデータベースの状態またはオプションの変更がすぐに完了しない場合に、要求が失敗するように指定します。Specifies that the request will fail if the requested database state or option change can't complete immediately. すぐに完了とは、トランザクションが自身のコミットまたはロール バック処理を待機しないことを意味します。Completing immediately means not waiting for transactions to commit or roll back on their own.

オプションの設定Setting options

データベース オプションの現在の設定を取得するには、sys.databases カタログ ビューまたは DATABASEPROPERTYEX を使用します。To retrieve current settings for database options, use the sys.databases catalog view or DATABASEPROPERTYEX

データベース オプションを設定すると、新しい設定は直ちに有効になります。After you set a database option, the new setting takes effect immediately.

新しく作成されるすべてのデータベースについて、任意のデータベース オプションの既定値を変更できます。You can change the default values for any one of the database options for all newly created databases. これを実行するには、モデル データベース内の適切なデータベース オプションを変更します。To do so, change the appropriate database option in the model database.

使用例Examples

A.A. データベースを READ_ONLY に設定するSetting the database to READ_ONLY

データベースまたはファイル グループの状態を READ_ONLY または READ_WRITE に変更するには、データベースに対する排他的アクセスが必要です。Changing the state of a database or file group to READ_ONLY or READ_WRITE requires exclusive access to the database. 次の例では、アクセスを制限するために、データベースを RESTRICTED_USER モードに設定します。The following example sets the database to RESTRICTED_USER mode to restricted access. 次に、AdventureWorks2012AdventureWorks2012 データベースの状態を READ_ONLY に設定し、データベースへのアクセス権をすべてのユーザーに戻します。The example then sets the state of the AdventureWorks2012AdventureWorks2012 database to READ_ONLY and returns access to the database to all users.

USE master;
GO
ALTER DATABASE [database_name]
SET RESTRICTED_USER;
GO
ALTER DATABASE [database_name]
SET READ_ONLY
GO
ALTER DATABASE [database_name]
SET MULTI_USER;
GO

B.B. データベースの SNAPSHOT 分離を有効にするEnabling snapshot isolation on a database

次の例では、AdventureWorks2012AdventureWorks2012 データベースに対する SNAPSHOT 分離フレームワーク オプションを有効にします。The following example enables the snapshot isolation framework option for the AdventureWorks2012AdventureWorks2012 database.

USE [database_name];
USE master;
GO
ALTER DATABASE [database_name]
SET ALLOW_SNAPSHOT_ISOLATION ON;
GO
-- Check the state of the snapshot_isolation_framework
-- in the database.
SELECT name, snapshot_isolation_state,
    snapshot_isolation_state_desc AS description
FROM sys.databases
WHERE name = N'[database_name]';
GO

結果セットは、SNAPSHOT 分離フレームワークが有効であることを示しています。The result set shows that the snapshot isolation framework is enabled.

NAMEname snapshot_isolation_statesnapshot_isolation_state descriptiondescription
[database_name][database_name] 11 ONON

C.C. 変更の追跡を有効化、変更、および無効化するEnabling, modifying, and disabling change tracking

次の例では、AdventureWorks2012AdventureWorks2012 データベースで変更の追跡を有効にし、保有期間を 2 日に設定します。The following example enables change tracking for the AdventureWorks2012AdventureWorks2012 database and sets the retention period to 2 days.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = ON
(AUTO_CLEANUP = ON, CHANGE_RETENTION = 2 DAYS);

次の例では、保有期間を 3 日に変更する方法を示します。The following example shows how to change the retention period to 3 days.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING (CHANGE_RETENTION = 3 DAYS);

次の例では、AdventureWorks2012AdventureWorks2012 データベースで変更の追跡を無効にする方法を示します。The following example shows how to disable change tracking for the AdventureWorks2012AdventureWorks2012 database.

ALTER DATABASE [database_name]
SET CHANGE_TRACKING = OFF;

D.D. クエリのストアを有効にするEnabling the Query Store

次の例では、クエリ ストアを有効にし、クエリ ストアのパラメーターを構成します。The following example enables the Query Store and configures Query Store parameters.

ALTER DATABASE [database_name]
SET QUERY_STORE = ON
  (  
      OPERATION_MODE = READ_WRITE
    , CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = 90 )
    , DATA_FLUSH_INTERVAL_SECONDS = 900
    , MAX_STORAGE_SIZE_MB = 1024
    , INTERVAL_LENGTH_MINUTES = 60
    );

参照See Also

SQL ServerSQL Server SQL Database
単一データベース/エラスティック プール
SQL Database
single database/elastic pool
SQL Database
マネージド インスタンス
SQL Database
managed instance
* SQL Data
Warehouse *
 
* SQL Data
Warehouse *
 

 

Azure SQL Data WarehouseAzure SQL Data Warehouse

構文Syntax

ALTER DATABASE { database_name }
SET
{
    <optionspec> [ ,...n ]
}
;

<option_spec>::=
{
    <auto_option>
  | <db_encryption_option>
  | <query_store_options>
  | <result_set_caching>
  | <snapshot_option>
}
;

<auto_option> ::=
{
    AUTO_CREATE_STATISTICS { OFF | ON }
}

<db_encryption_option> ::=
{
    ENCRYPTION { ON | OFF }
}

<query_store_option> ::=
{
    QUERY_STORE { OFF |  ON }
}

<result_set_caching_option> ::=
{
    RESULT_SET_CACHING {ON | OFF}
}

<snapshot_option> ::=
{
    READ_COMMITTED_SNAPSHOT {ON | OFF }
}

引数Arguments

database_name database_name
変更するデータベースの名前です。Is the name of the database to be modified.

<auto_option> ::=<auto_option> ::=

自動オプションを制御します。Controls automatic options.

AUTO_CREATE_STATISTICS { ON | OFF }AUTO_CREATE_STATISTICS { ON | OFF }

ONON
クエリ プランを改善してクエリのパフォーマンスを向上させるために、クエリ オプティマイザーが必要に応じてクエリ述語内の列に対して 1 列ずつ統計を作成します。Query Optimizer creates statistics on single columns in query predicates, as necessary, to improve query plans and query performance. これらの 1 列ずつの統計は、クエリ オプティマイザーがクエリをコンパイルする場合に作成されます。These single-column statistics are created when Query Optimizer compiles queries. 1 列ずつの統計は、まだ既存の統計オブジェクトの最初の列になっていない列についてのみ作成されます。The single-column statistics are created only on columns that are not already the first column of an existing statistics object.

既定値は ON です。The default is ON. ほとんどのデータベースで既定の設定を使用することをお勧めします。We recommend that you use the default setting for most databases.

OFFOFF
クエリ オプティマイザーがクエリをコンパイルするときにクエリ述語内の列の 1 列ずつの統計が作成されません。Query Optimizer doesn't create statistics on single columns in query predicates when it's compiling queries. このオプションを OFF に設定すると、最適ではないクエリ プランが作成されて、クエリのパフォーマンスが低下することがあります。Setting this option to OFF can cause suboptimal query plans and degraded query performance.

sys.databases カタログ ビューの s_auto_create_stats_on 列を調べることでこのオプションの状態を判断できます。You can determine this option's status by examining the is_auto_create_stats_on column in the sys.databases catalog view. DATABASEPROPERTYEX 関数の IsAutoCreateStatistics プロパティを調べることで状態を判断することもできます。You can also determine the status by examining the IsAutoCreateStatistics property of the DATABASEPROPERTYEX function.

詳細については、「統計」の「データベース全体の統計オプションの使用」セクションを参照してください。For more information, see the section "Using the database-wide statistics options" in Statistics.

<db_encryption_option> ::=<db_encryption_option> ::=

データベース暗号化の状態を制御します。Controls the database encryption state.

ENCRYPTION { ON | OFF }ENCRYPTION { ON | OFF }

ONON
暗号化するデータベースを設定します。Sets the database to be encrypted.

OFFOFF
暗号化しないデータベースを設定します。Sets the database to not be encrypted.

データベース暗号化について詳しくは、「透過的なデータ暗号化」と「Azure SQL Database での Transparent Data Encryption」をご覧ください。For more information about database encryption, see Transparent Data Encryption, and Transparent Data Encryption with Azure SQL Database.

データベース レベルで暗号化を有効にすると、すべてのファイル グループが暗号化されます。When encryption is enabled at the database level, all file groups will be encrypted. すべての新しいファイル グループに、その暗号化プロパティが継承されます。Any new file groups will inherit the encrypted property. データベースに READ ONLY に設定されているファイル グループがあると、データベースの暗号化操作は失敗します。If any file groups in the database are set to READ ONLY, the database encryption operation will fail.

データベースの暗号化の状態や暗号化スキャンの状態を確認するには、sys.dm_database_encryption_keys 動的管理ビューを使用します。You can see the encryption state of the database as well as the state of the encryption scan by using the sys.dm_database_encryption_keys dynamic management view.

<query_store_option> ::=<query_store_option> ::=

このデータ ウェアハウスでクエリ ストアを有効にするかどうかを制御します。Controls whether the Query Store is enabled in this data warehouse.

QUERY_STORE { ON | OFF }QUERY_STORE { ON | OFF }

ONON
クエリのストアを有効にします。Enables the Query Store.

OFFOFF

クエリのストアを無効にします。Disables the Query Store. 既定値は OFF です。OFF is the default value.

注意

SQL データ ウェアハウスSQL Data Warehouse の場合、ユーザー データベースから ALTER DATABASE SET QUERY_STORE を実行する必要があります。For SQL データ ウェアハウスSQL Data Warehouse, you must execute ALTER DATABASE SET QUERY_STORE from the user database. 別のデータ ウェアハウス インスタンスからのステートメントの実行は、サポートされていません。Executing the statement from another data warehouse instance isn't supported.

<result_set_caching_option> ::= <result_set_caching_option> ::=
適用対象:Azure SQL Data Warehouse (プレビュー)Applies to: Azure SQL Data Warehouse (preview)

クエリ結果をデータベースにキャッシュするかどうかを制御します。Controls whether query result is cached in the database.

RESULT_SET_CACHING {ON | OFF}RESULT_SET_CACHING {ON | OFF}

ONON
このデータベースから返されたクエリの結果セットが Azure SQL Data Warehouse ストレージにキャッシュされることを指定します。Specifies that query result sets returned from this database will be cached in Azure SQL Data Warehouse storage.

OFFOFF
このデータベースから返されたクエリの結果セットが Azure SQL Data Warehouse ストレージにキャッシュされないことを指定します。Specifies that query result sets returned from this database will not be cached in Azure SQL Data warehouse storage.

RemarksRemarks

このコマンドは、master データベースに接続しているときに実行する必要があります。This command must be run while connected to the master database. このデータベースの設定変更はすぐに適用されます。Change to this database setting takes effect immediately. クエリの結果セットをキャッシュすることでストレージ コストが発生します。Storage costs are incurred by caching query result sets. データベースの結果キャッシュを無効にすると、直後に、前に永続させた結果キャッシュが Azure SQL Data Warehouse ストレージから削除されます。After disabling result caching for a database, previously persisted result cache will immediately be deleted from Azure SQL Data Warehouse storage.

データベースの結果セットのキャッシュ構成を確認するには、次のコマンドを実行します。Run this command to check a database's result set caching configuration. 結果セットのキャッシュが ON になっている場合は、is_result_set_caching_on によって 1 が返されます。If result set caching is turned ON, is_result_set_caching_on will return 1.


SELECT name, is_result_set_caching_on FROM sys.databases 
WHERE name = <'Your_Database_Name'>

クエリを実行した結果のキャッシュ ヒットまたはキャッシュ ミスを確認するには、次のコマンドを実行します。Run this command to check if a query was executed with a result cache hit or miss. キャッシュ ヒットがあった場合は、result_cache_hit によって 1 が返されます。If there is a cache hit, the result_cache_hit will return 1.


SELECT request_id, command, result_cache_hit FROM sys.pdw_exec_requests 
WHERE request_id = <'Your_Query_Request_ID'>

データベースに対して結果セットのキャッシュが ON になると、次のクエリを除くすべてのクエリについて、キャッシュがいっぱいになるまで結果がキャッシュされます。Once result set caching is turned ON for a database, results are cached for all queries until the cache is full, except for these queries:

  • DateTime.Now() などの非決定論的関数を使用したクエリQueries using non-deterministic functions such as DateTime.Now()
  • ユーザー定義関数を使用したクエリQueries using user defined functions
  • 64 KB を超える行サイズのデータを返すクエリQueries returning data with row size larger than 64KB

大きな結果セットを伴うクエリ (100 万行を超えるなど) の場合、結果のキャッシュが作成される最初の実行時にパフォーマンスが低下することがあります。Queries with large result sets (for example, > 1 million rows) may experience slower performance during the first run when the result cache is being created.

次の要件がすべて満たされる場合、キャッシュされた結果セットはクエリに再利用されます。Cached result set is reused for a query if all of the following requirements are all met:

  1. クエリを実行しているユーザーに、クエリで参照されているすべてのテーブルに対するアクセス権がある。The user who's running the query has access to all the tables referenced in the query.
  2. 新しいクエリと、結果セットのキャッシュを生成した以前のクエリとの間に、完全一致がある。There is an exact match between the new query and the previous query that generated the result set cache.
  3. キャッシュされた結果セットの生成元のテーブルに対してデータやスキーマの変更が行われていない。There is no data or schema changes in the tables where the cached result set was generated from.

<snapshot_option> ::= <snapshot_option> ::=
適用対象:Azure SQL Data Warehouse (プレビュー)Applies to: Azure SQL Data Warehouse (preview)

データベースのトランザクション分離レベルを制御します。Controls the transaction isolation level of a database.

READ_COMMITTED_SNAPSHOT { ON | OFF }READ_COMMITTED_SNAPSHOT { ON | OFF }

ONON
データベース レベルで READ_COMMITTED_SNAPSHOT オプションを有効にします。Enables the READ_COMMITTED_SNAPSHOT option at the database level.

OFFOFF
データベース レベルで READ_COMMITTED_SNAPSHOT オプションを無効にします。Turn off the READ_COMMITTED_SNAPSHOT option at the database level.

RemarksRemarks

このコマンドは、master データベースに接続しているときに実行する必要があります。This command must be run while connected to the master database. ユーザー データベースの READ_COMMITTED_SNAPSHOT のオン/オフを切り替えると、このデータベースにつながっている接続がすべて切断されます。Turning READ_COMMITTED_SNAPSHOT ON or OFF for a user database will kill all open connections to this database. この変更はデータベースのメンテナンス期間中に行うか、ALTER DATABSE コマンドを実行している接続を除き、データベースへのアクティブな接続がなくなるまで待つことをお勧めします。You may want to make this change during database maintenance window or wait until there's no active connection to the database except for the connection running the ALTER DATABSE command. データベースをシングル ユーザー モードにする必要はありません。The database does not have to be in single-user mode. セッションレベルで READ_COMMITTED_SNAPSHOT 設定を変更することはできません。Changing READ_COMMITTED_SNAPSHOT setting at session level isn't supported. データベースのこの設定は、sys.databases の is_read_committed_snapshot_on 列で確認します。To verify this setting for a database, check is_read_committed_snapshot_on column in sys.databases.

データベースで READ_COMMITTED_SNAPSHOT が有効になっている場合、複数のデータ バージョンが存在するとき、各バージョンのスキャンのため、クエリのパフォーマンスが遅くなることがあります。In a database with READ_COMMITTED_SNAPSHOT enabled, queries may experience slower performance due to the scan of versions if multiple data versions are present. トランザクションが長時間になると、データベースが増大することもあります。Long-open transactions can also cause an increase in the size of the database. この問題は、バージョン クリーンアップをブロックするこのようなトランザクションでデータが変更される場合に発生します。This issue occurs if there are data changes by these transactions that block version cleanup.

アクセス許可Permissions

RESULT_SET_CACHING オプションを設定するには、ユーザーにサーバーレベルのプリンシプル ログインを与えるか (プロビジョニング プロセスで作成されるもの)、ユーザーが dbmanager データベース ロールのメンバーになる必要があります。To set the RESULT_SET_CACHING option, a user needs server-level principal login (the one created by the provisioning process) or be a member of the dbmanager database role.

READ_COMMITTED_SNAPSHOT オプションを設定するには、ユーザーにデータベースの ALTER 権限を与える必要があります。To set the READ_COMMITTED_SNAPSHOT option, a user needs ALTER permission on the database.

使用例Examples

データベースの統計設定を確認するCheck statistics setting for a database

SELECT name, is_auto_create_stats_on FROM sys.databases

データベースのクエリ ストアを有効にするEnable query store for a database

ALTER DATABASE [database_name]
SET QUERY_STORE = ON;

データベースに対して結果セットのキャッシュを有効にするEnable result set caching for a database

ALTER DATABASE [database_name]
SET RESULT_SET_CACHING ON;

データベースに対する結果セットのキャッシュを確認するCheck result set caching setting for a database

SELECT name, is_result_set_caching_on
FROM sys.databases;

あるクエリに対する結果セットのキャッシュ ヒットまたはキャッシュ ミスを確認するCheck for result set cache hit or cache miss for a query

If
(SELECT step_index  
FROM sys.dm_pdw_request_steps  
WHERE request_id = 'QID58286' and operation_type = 'ReturnOperation' and command like '%DWResultCacheDb%') = 0
SELECT 1 as is_cache_hit  
ELSE
SELECT 0 as is_cache_hit;

結果セットにキャッシュ ヒットがあるクエリをすべて確認するCheck for all queries with result set cache hits

SELECT *  
FROM sys.dm_pdw_request_steps  
WHERE command like '%DWResultCacheDb%' and step_index = 0;

データベースの Read_Committed_Snapshot オプションを有効にするEnable the Read_Committed_Snapshot option for a database

ALTER DATABASE MyDatabase  
SET READ_COMMITTED_SNAPSHOT ON

参照See also