sp_create_removable (Transact-SQL)
適用対象: SQL Server
リムーバブル メディア データベースを作成します。 3 つ以上のファイル (システム カタログ テーブルとトランザクション ログに 1 つずつ、データ テーブルに 1 つ以上) を作成し、それらのファイルにデータベースを格納します。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに CREATE DATABASE を使用することをお勧めします。
構文
sp_create_removable
[ [ @dbname = ] N'dbname' ]
[ , [ @syslogical = ] N'syslogical' ]
[ , [ @sysphysical = ] N'sysphysical' ]
[ , [ @syssize = ] syssize ]
[ , [ @loglogical = ] N'loglogical' ]
[ , [ @logphysical = ] N'logphysical' ]
[ , [ @logsize = ] logsize ]
[ , [ @datalogical1 = ] N'datalogical1' ]
[ , [ @dataphysical1 = ] N'dataphysical1' ]
[ , [ @datasize1 = ] datasize1 ]
[ , ... ]
[ , [ @datalogical16 = ] N'datalogical16' ]
[ , [ @dataphysical16 = ] N'dataphysical16' ]
[ , [ @datasize16 = ] datasize16 ]
[ ; ]
引数
[ @dbname = ] N'dbname'
リムーバブル メディアで使用するために作成するデータベースの名前。 @dbname は sysname で、既定値は NULL
です。
[ @syslogical = ] N'syslogical'
システム カタログ テーブルを含むファイルの論理名。 @syslogical は sysname で、既定値は NULL
です。
[ @sysphysical = ] N'sysphysical'
物理名。 @sysphysical は nvarchar(260) で、既定値は NULL
です。 この値には、システム カタログ テーブルを保持するファイルの完全修飾パスが含まれます。
[ @syssize = ] syssize
システム カタログ テーブルを保持するファイルのサイズ (メガバイト単位)。 @syssize は int で、既定値は NULL
です。
[ @loglogical = ] N'loglogical'
トランザクション ログを含むファイルの論理名。 @loglogical は sysname で、既定値は NULL
です。
[ @logphysical = ] N'logphysical'
物理名。 @logphysical は nvarchar(260) で、既定値は NULL
です。 この値には、トランザクション ログを含むファイルの完全修飾パスが含まれます。
[ @logsize = ] logsize
トランザクション ログを含むファイルのサイズ (メガバイト単位)。 @logsize は int で、最小値は 1
です。
[ @datalogical1 = ] N'datalogical1'
データ テーブルを含むファイルの論理名。 @datalogical1 は sysname で、既定値は NULL
です。
データ ファイルの 1
と 16
の間に存在する必要があります。 通常、データベースが大きくなると予想される場合は、複数のデータ ファイルが作成され、複数のディスクに分散する必要があります。
[ @dataphysical1 = ] N'dataphysical1'
物理名。 @dataphysical1 は nvarchar(260) で、既定値は NULL
です。 この値には、データ テーブルを含むファイルの完全修飾パスが含まれます。
[ @datasize1 = ] datasize1
データ テーブルを含むファイルのサイズ (メガバイト単位)。 @datasize1 は int で、最小値は 1
です。
リターン コードの値
0
(成功) または 1
(失敗)。
結果セット
ありません。
解説
データベースのコピーをコンパクト ディスクなどのリムーバブル メディアに作成し、他のユーザーにデータベースを配布する場合は、このストアド プロシージャを使用します。
アクセス許可
CREATE DATABASE
、CREATE ANY DATABASE
、または ALTER ANY DATABASE
アクセス許可が必要です。
SQL Server のインスタンス上のディスク使用量を管理するため、通常、データベースを作成する権限をいくつかのログイン アカウントに制限します。
データ ファイルとログ ファイルに対するアクセス許可
データベースに対して特定の操作が実行されるたびに、対応する権限がそのデータ ファイルとログ ファイルに設定されます。 アクセス許可により、ファイルが開いているアクセス許可のディレクトリに存在する場合に誤って改ざんされるのを防ぐことができます。
データベースに対する操作 | ファイルに設定されたアクセス許可 |
---|---|
新しいファイルを追加するように変更されました | 作成 |
バックアップ対象 | アタッチ |
復旧済み | Detached |
Note
SQL Server では、データとログ ファイルのアクセス許可は設定されません。
例
次の例では、リムーバブル データベースとしてデータベース inventory
を作成します。
EXEC sp_create_removable 'inventory',
'invsys',
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\invsys.mdf',
2,
'invlog',
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\invlog.ldf',
4,
'invdata',
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Data\invdata.ndf',
10;