sp_dboption (Transact-SQL)
データベース オプションを表示または変更します。master データベースと tempdb データベースのどちらにおいても、sp_dboption を使用してオプションを変更しないでください。
重要 |
---|
この機能は、Microsoft SQL Server の次のバージョンで削除されます。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションはできるだけ早く修正してください。代わりに ALTER DATABASE を使用してください。レプリケーション (merge publish、published、subscribed) に関連付けられたデータベース オプションを変更するには、sp_replicationdboption を使用します。 |
構文
sp_dboption [ [ @dbname = ] 'database' ]
[ , [ @optname = ] 'option_name' ]
[ , [ @optvalue = ] 'value' ]
[;]
引数
[ @dbname= ] 'database'
指定したオプションを設定するデータベースの名前です。database のデータ型は sysname で、既定値は NULL です。[ @optname= ] 'option_name'
設定するオプションの名前です。完全なオプション名を入力する必要はありません。SQL Server は、名前の一部となっているすべての一意の文字列を認識します。オプション名に空白が含まれている場合や、キーワードをオプション名に使用する場合は、オプション名を引用符で囲みます。このパラメータを省略すると、sp_dboption は有効になっているオプションの一覧を表示します。option_name のデータ型は varchar(35) で、既定値は NULL です。[ @optvalue=] 'value'
option_name の新しい設定です。このパラメータを省略すると、sp_dboptionは現在の設定を返します。value は true、false、on、off のいずれかとなります。value のデータ型は varchar(10) で、既定値は NULL です。
戻り値
成功した場合は 0 を、失敗した場合は 1 をそれぞれ返します。
結果セット
次の表は、パラメータを指定しない場合の結果セットを示します。
列名 |
データ型 |
説明 |
---|---|---|
Settable database options |
nvarchar(35) |
設定可能なデータベース オプションのすべてです。 |
次の表は、database パラメータのみを指定した場合の結果セットを示します。
列名 |
データ型 |
説明 |
---|---|---|
The following options are set: |
nvarchar(35) |
指定されたデータベースに設定されたオプションです。 |
次の表は、option_name を指定した場合の結果セットを示します。
列名 |
データ型 |
説明 |
---|---|---|
OptionName |
nvarchar(35) |
オプションの名前です。 |
CurrentSetting |
char(3) |
オプションが有効または無効のどちらであるかを示します。 |
value を指定した場合、sp_dboption は結果セットを返しません。
説明
次の表は、sp_dboption が設定するオプションを示します。各オプションの詳細については、「データベース オプションの設定」を参照してください。
オプション |
説明 |
---|---|
auto create statistics |
true を指定すると、クエリの最適化に必要な統計が不足している場合、最適化時に自動的に構築します。詳細については、「CREATE STATISTICS (Transact-SQL)」を参照してください。 |
auto update statistics |
true を指定すると、クエリの最適化に必要な統計が期限切れの場合、最適化時に自動的に構築されます。詳細については、「UPDATE STATISTICS (Transact-SQL)」を参照してください。 |
autoclose |
true を指定すると、データベースは正常にシャットダウンされ、最後のユーザーがログオフするとデータベースのリソースは解放されます。 |
autoshrink |
true を指定すると、データベース ファイルは自動定期圧縮の対象になります。 |
ANSI null default |
true を指定すると、CREATE TABLE は ISO の規則に従って、当該の列で NULL 値を許容するかどうかを決定します。 |
ANSI nulls |
true を指定すると、NULL 値との比較結果はすべて UNKNOWN になります。false を指定すると、UNICODE 以外の値と NULL 値の比較結果は、両方の値が NULL であると TRUE になります。 |
ANSI warnings |
true を指定すると、"0 除算" などの状態になったときに、エラーまたは警告が発生します。 |
arithabort |
true を指定すると、オーバーフローまたは 0 除算エラーが発生したときにクエリまたはバッチが終了します。エラーがトランザクションの内部で発生した場合には、トランザクションはロールバックされます。false を指定すると、警告メッセージが表示されますが、クエリ、バッチ、またはトランザクションは、エラーが発生しなかったかのように処理を続行します。 |
concat null yields null |
true を指定すると、連結操作のオペランドのいずれかが NULL であると、結果は NULL になります。 |
cursor close on commit |
true を指定すると、トランザクションのコミットまたはロールバック時にオープンされているカーソルはクローズされます。false を指定すると、このようなカーソルはトランザクションのコミット時もオープンされたままです。false の場合、トランザクションをロールバックすると、INSENSITIVE または STATIC として定義されているカーソルを除いてすべてのカーソルはクローズされます。 |
dbo use only |
true を指定すると、データベース所有者以外のユーザーは使用できません。 |
default to local cursor |
true を指定すると、カーソルの既定の宣言は LOCAL になります。 |
merge publish |
true を指定すると、データベースはマージ レプリケーション用にパブリッシュできます。 |
numeric roundabort |
true を指定すると、式の精度が低下したときにエラーが生成されます。false の場合には、精度が低下してもエラー メッセージは生成されず、結果はそれを格納する列または変数の有効桁数に丸められます。 |
offline |
true (on) を指定すると、データベースはオフラインです。false (off) を指定すると、データベースはオンラインです。 |
published |
true を指定すると、データベースはレプリケーション用にパブリッシュできます。 |
quoted identifier |
true を指定すると、識別子を囲むのに二重引用符を使用できます。 |
read only |
true を指定すると、ユーザーはデータベースでデータの読み取りのみ行えます。ユーザーはデータまたはデータベース オブジェクトを変更することはできませんが、DROP DATABASE ステートメントを使用することにより、データベース自体を削除することはできます。データベースの使用中に、read only オプションに新しい value を設定することはできません。master データベースは例外です。read only オプションが設定されていても、システム管理者だけは master データベースを使用できます。 |
recursive triggers |
true を指定すると、トリガの再帰的な実行を可能にします。false を指定すると、直接再帰呼び出しだけが実行されないようになります。間接再帰呼び出しを無効にするには、sp_configure を使用して、nested triggers サーバー オプションを 0 に設定します。 |
select into/bulkcopy |
MicrosoftSQL Server 2000 から使用を開始し、データベースの現在の復旧モデルが FULL に設定されている場合、select into/bulkcopy option を使用すると復旧モデルが BULK_LOGGED に再設定されます。復旧モデルを適切な方法で変更するには、ALTER DATABASE ステートメントの SET RECOVERY 句を使用します。 |
single user |
true を指定すると、特定の時点でデータベースにアクセスできるのは 1 人のユーザーのみです。 |
subscribed |
true を指定すると、データベースをパブリケーション用にサブスクライブできます。 |
torn page detection |
true を指定すると、不完全なページを検出できます。 |
trunc. log on chkpt. |
true を指定すると、データベースがログ切り捨てモードのときに、チェックポイントはログのアクティブでない部分を切り捨てます。これは、ユーザーが master データベースに対して設定できる唯一のオプションです。
重要
SQL Server 2000 で起動し、trunc. log on chkpt. オプションに true を指定すると、データベースの復旧モデルは SIMPLE に設定されます。オプションに false を指定すると、復旧モデルは FULL に設定されます。
|
データベース所有者またはシステム管理者は、model データベース上で sp_dboption を実行して、新しく作成するすべてのデータベースの特定のデータベース オプションを設定したり、オフにしたりすることができます。
sp_dboption を実行すると、そのオプションを変更したデータベース内でチェックポイントが実行されます。これによって、変更したオプションが直ちに有効になります。
sp_dboption は、データベースの設定を変更します。サーバー レベルの設定を変更する場合は、sp_configure を使用します。現在のセッションにのみ影響する設定を変更する場合は、SET ステートメントを使用します。
権限
データベース オプションとそれらの現在の値の一覧を表示するには、public ロールのメンバシップである必要があります。データベース オプションの値を変更するには、db_owner 固定データベース ロールのメンバシップである必要があります。
例
A. データベースを読み取り専用に設定する
次の例では、AdventureWorks データベースを読み取り専用にします。
USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'TRUE';
B. オプションをオフにする
次の例では、AdventureWorks データベースを書き込み可能に戻します。
USE master;
GO
EXEC sp_dboption 'AdventureWorks', 'read only', 'FALSE';