SQL Server 2008 でデータ ファイル(.mdf)のアタッチとデタッチ

SQL Server 2008 では、CREATE DATABASE .. FOR ATTACH ステートメントを利用して、データベースのアタッチを行うことができます。

USE master
go
CREATE DATABASE sampleDB
ON ( FILENAME = N'C:\sampleDB.mdf' ),
   ( FILENAME = N'C:\sampleDB_log.LDF' )
FOR ATTACH

sp_attach_db システムストアド プロシージャも下位互換のために用意されているので(将来のバージョンでは削除される予定)、次のように実行することもできます。

USE master
go
EXEC sp_attach_db N'sampleDB'
		, N'D:\sampleDB.mdf'
		, N'D:\sampleDB_log.LDF'


また、デタッチされた DB や、オフライン バックアップでコピーしたデータベース ファイル(.mdf)の場合は、sp_attach_single_file_db システムストアド プロシージャも下位互換のために用意されているので(将来のバージョンでは削除される予定)、次のように実行することもできます。

USE master
go
EXEC sp_attach_single_file_db N'sampleDB'
		, N'D:\sampleDB.mdf'

なお、デタッチを行う場合は、sp_detach_db システム ストアド プロシージャを利用して、次のように実行します。

USE master
go
EXEC sp_detach_db @dbname = N'sampleDB'