sp_attach_single_file_db (Transact-SQL)
データ ファイルが 1 つだけ格納されているデータベースを現在のサーバーにアタッチします。sp_attach_single_file_db は複数のデータ ファイルに対しては使用できません。
重要 |
---|
この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。 新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに、CREATE DATABASE database_name FOR ATTACH を使用することをお勧めします。詳細については、「CREATE DATABASE (Transact-SQL)」を参照してください。レプリケートされたデータベースには、このプロシージャを使用しないでください。 |
セキュリティに関する注意 |
---|
不明なソースや信頼されていないソースからデータベースをアタッチまたは復元しないことをお勧めします。こうしたデータベースには、意図しない Transact-SQL コードを実行したり、スキーマまたは物理データベース構造を変更してエラーを発生させるような、悪意のあるコードが含まれている可能性があります。不明なソースや信頼されていないソースからのデータベースを使用する前には、非稼働サーバーにあるデータベースで DBCC CHECKDB を実行してください。また、ストアド プロシージャやその他のユーザー定義コードなど、データベースのコードを確認してください。 |
構文
sp_attach_single_file_db [ @dbname= ] 'dbname'
, [ @physname= ] 'physical_name'
引数
[ @dbname= ] 'dbname'
サーバーにアタッチされるデータベースの名前を指定します。一意な名前を指定してください。dbname のデータ型は sysname で、既定値は NULL です。[ @physname= ] 'physical_name'
データベース ファイルの物理名を、パスも含めて指定します。physical_name のデータ型は nvarchar(260) で、既定値は NULL です。注意 この引数は、CREATE DATABASE ステートメントの FILENAME パラメータにマップされます。詳細については、「CREATE DATABASE (Transact-SQL)」を参照してください。
フルテキスト カタログ ファイルを含む SQL Server 2005 データベースを SQL Server 2008 サーバー インスタンスにアタッチする場合、カタログ ファイルは SQL Server 2005 と同様に他のデータベース ファイルと一緒に以前の場所からアタッチされます。詳細については、「フルテキスト検索のアップグレード」を参照してください。
リターン コード値
0 (成功) または 1 (失敗)
結果セット
なし
説明
sp_attach_single_file_db は、sp_detach_db 操作を明示的に実行してサーバーからデタッチされたデータベース、またはコピーされたデータベースに対してのみ使用してください。
sp_attach_single_file_db は、ログ ファイルが 1 つだけ格納されているデータベースに対してのみ使用できます。sp_attach_single_file_db によってデータベースがサーバーにアタッチされると、新しいログ ファイルが作成されます。データベースが読み取り専用の場合、ログ ファイルは、アタッチされる前の場所に作成されます。
注意 |
---|
データベース スナップショットは、デタッチまたはアタッチできません。 |
レプリケートされたデータベースには、このプロシージャを使用しないでください。
例
次の例では、AdventureWorks をデタッチした後、AdventureWorks から現在のサーバーに 1 つのファイルをアタッチします。
USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks',
@physname = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Data\AdventureWorks_Data.mdf';