Jiro Laboratory

C#、ASP.NET、JavaScript、Androidとか

LocalDB から SQL Server (Express) へのデータ移行

LocalDB、SQL Server Express は SSMS*1 からデータをエクスポートすることができません。
LocalDB/SQL Server Express から SQL ServerSQL Server Express にデータを移行するにはデタッチ/アタッチを使用します。

デタッチ

あらかじめデータファイル(*.mdf)の場所を確認しておきます。
SSMS からデータベース名を右クリック > プロパティ > File(ページの選択) で *.mdf と *_log.ldf のパスがわかります。
LocalDB であれば c:\Users\ユーザー名 の直下にあるはず。
SSMS からデータベース名を右クリック > タスク > デタッチ を選択します。

アタッチ

*.mdf と *_log.ldf を任意のフォルダにコピーします。
SSMS から移行先インスタンスの「データベース」フォルダを右クリック > アタッチ を選択します。
「データベースのインポート」ダイアログが表示されるので「追加」ボタンからコピーした *.mdf ファイルを選択。
(*_log.ldf は自動的に選ばれるので選択する必要はありません)
「OK」ボタンを押せば移行完了です。

SQL Server のバージョンが 移行元 > 移行先 の場合、移行できませんので、その場合はあらかじめ移行先の SQL Server (Express) のバージョンを上げておきましょう。バージョンは SSMS でインスタンスの右に表示されている数字から分かります。(SQL Server XX.0.xxxx の XX に該当する数字です)

*1:SQL Server Management System