次の方法で共有


sp_attach_single_file_db (Transact-SQL)

更新 : 2005 年 12 月 5 日

データ ファイルが 1 つだけ格納されているデータベースを現在のサーバーにアタッチします。sp_attach_single_file_db は複数のデータ ファイルに対しては使用できません。

ms174385.note(ja-jp,SQL.90).gif重要 :
この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。代わりに、CREATE DATABASE database_name FOR ATTACH を使用することをお勧めします。詳細については、「CREATE DATABASE (Transact-SQL)」を参照してください。レプリケートされたデータベースには、このプロシージャを使用しないでください。
ms174385.security(ja-jp,SQL.90).gifセキュリティ メモ :
不明なソースや信頼されていないソースからデータベースをアタッチまたは復元しないことをお勧めします。こうしたデータベースには、意図しない 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 です。

    ms174385.note(ja-jp,SQL.90).gifメモ :
    この引数は、CREATE DATABASE ステートメントの FILENAME パラメータにマップされます。詳細については、「CREATE DATABASE (Transact-SQL)」を参照してください。

    Microsoft SQL Server 2005 データベース エンジンでは、アタッチされるデータベースに含まれているフルテキスト ファイルも、すべてデータベースと共にアタッチされます。フルテキスト カタログの新しいパスを指定する場合、ファイル名なしでディレクトリ名を指定すればカタログ ファイルを指定できます。詳細については、「フルテキスト カタログのアタッチとデタッチ」を参照してください。

結果セット

なし

解説

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

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

ms174385.note(ja-jp,SQL.90).gifメモ :
データベース スナップショットは、デタッチまたはアタッチできません。

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

権限

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

戻り値

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

次の例では、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\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf';

参照

関連項目

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

その他の技術情報

データベースのデタッチとアタッチ
フルテキスト カタログのアタッチとデタッチ
データ ファイルとログ ファイルのセキュリティ保護

ヘルプおよび情報

SQL Server 2005 の参考資料の入手

変更履歴

リリース 履歴

2005 年 12 月 5 日

追加内容
  • セキュリティに関する注を追加しました。