次の方法で共有


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 を実行してください。また、ストアド プロシージャやその他のユーザー定義コードなど、データベースのコードを確認してください。

トピック リンク アイコン Transact-SQL 構文表記規則

構文

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 2012 サーバー インスタンスにアタッチする場合、カタログ ファイルは SQL Server 2005 と同様に他のデータベース ファイルと一緒に以前の場所からアタッチされます。 詳細については、「SQL Server 2005 からのフルテキスト検索のアップグレード」を参照してください。

リターン コード値

0 (成功) または 1 (失敗)

結果セット

なし

説明

sp_attach_single_file_db は、sp_detach_db 操作を明示的に実行してサーバーからデタッチされたデータベース、またはコピーされたデータベースに対してのみ使用してください。

sp_attach_single_file_db は、ログ ファイルが 1 つだけ格納されているデータベースに対してのみ使用できます。 sp_attach_single_file_db によってデータベースがサーバーにアタッチされると、新しいログ ファイルが作成されます。 データベースが読み取り専用の場合、ログ ファイルは、アタッチされる前の場所に作成されます。

注意

データベース スナップショットは、デタッチまたはアタッチできません。

レプリケートされたデータベースには、このプロシージャを使用しないでください。

権限

データベースをアタッチする際の権限の扱いについては、「CREATE DATABASE (Transact-SQL)」を参照してください。

使用例

次の例では、 AdventureWorks2012 をデタッチした後、 AdventureWorks2012 から現在のサーバーに 1 つのファイルをアタッチします。

USE master;
GO
EXEC sp_detach_db @dbname = 'AdventureWorks2012';
EXEC sp_attach_single_file_db @dbname = 'AdventureWorks2012', 
    @physname = 
N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Data\AdventureWorks2012_Data.mdf';

関連項目

参照

sp_detach_db (Transact-SQL)

sp_helpfile (Transact-SQL)

システム ストアド プロシージャ (Transact-SQL)

概念

データベースのデタッチとアタッチ (SQL Server)