SQL Server Express 2016 LocalDBにサンプルデータベースを作成


SQL Server Express 2016 LocalDBにサンプルデータベースを作成してみました。
開発用に簡単なデータベースを用意したかったので公式のサンプルデータベースを使いました。

今回はVisual Studioを使ってスクリプトファイルからデータベースを作成しています。

環境

Windows 10 April 2018 Update バージョン 1803
Visual Studio Community 2017 Version 15.6.7

サンプルデータベースを選択

SQL Serverのサンプルデータベースはこちらの記事の通りいくつかあるようです。

サンプル用のデータベース・ファイル(.mdfファイル)を入手するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/941sampledb/sampledb.html

現在は「WideWorldImporters」というサンプルデータベースもあるようです。

新しいサンプルデータベース 『 WideWorldImporters 』 の中身を見てみる
http://ryuchan.hatenablog.com/entry/2016/06/26/110742

今回は開発用でテーブル数もあまり必要ないので「AdventureWorks 2012 LT」を使うことにしました。
.mdfファイルから作成する方法がわからなかったので今回はスクリプトファイルから作成します。

AdventureWorksダウンロード

こちらから「adventure-works-2012-oltp-lt-script.zip」をダウンロードします。
https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks2012

ダウンロードしたファイルを解凍してCドライブへ移動します。

今回は次のようなフォルダ構成を前提に説明します。

データベースファイルの保存先 → C:\AdventureWorks\
スクリプトファイルの保存先 → C:\AdventureWorks 2012 LT Script\

AdventureWorksデータベース作成

Visual Studioからスクリプトファイル「C:\AdventureWorks 2012 LT Script\instawltdb.sql」を開きます。

ファイル開くと構文エラーになるので「SQLCMD Mode」に変更します。

スクリプトファイルを次のように修正します。

instawltdb.sql(修正前)
:setvar SqlSamplesDatabasePath   "C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\";
:setvar SqlSamplesSourceDataPath "C:\Samples\AdventureWorks\AdventureWorks 2012 LT Script\";

フォルダを変更して行末のセミコロン(;)を削除します。

instawltdb.sql(修正後)
:setvar SqlSamplesDatabasePath   "C:\AdventureWorks\"
:setvar SqlSamplesSourceDataPath "C:\AdventureWorks 2012 LT Script\"

LocalDBに接続します。

ローカルの「MSSQLLocalDB」を選択して接続します。

スクリプトを実行します。

正常に終了すると「AdventureWorksLT2012」データベースが作成されます。