kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studioに統合されるデータベース開発ツール- SSDT

この日記はVisual Studio Advent Calendar 2015の12/8分の記事です。


Visual Studio Advent Calendar 2014 - Qiita

みなさんはデータベースの開発にどんなものを使われているでしょうか?本番機と検証機のスキーマやデータ比較どうしているでしょう?いちいちSQLを書いて比較したりしていませんか?

ストアドプロシージャの開発や、データの定義を行うのにSQL Server Management Studio(SSMS)もいいですが、どうせならVisual Studioに統合されたSQL Server Data Tools(SSDT)を使ってみましょう。SSMSと同様のIntellisenseとともにソース管理もサポートされるので、大変便利です。

f:id:kkamegawa:20141206060450p:plain

新規プロジェクトからSQL Serverを選んでSQL Serverデータベースプロジェクトを選びます。ほかのプロジェクト同様、この時点でソース管理に追加することも可能です。

f:id:kkamegawa:20141206060451p:plain

プロジェクトにはSQL Serverでサポートされている多くのテーブル、SQL CLR、サーバーオブジェクトを追加することができます。

f:id:kkamegawa:20141206060459p:plain

プロジェクトのプロパティでターゲットのSQL Serverのバージョンを指定可能です。異なるバージョンのSQL Serverではスキーマの比較ができないので、気を付けてください。

f:id:kkamegawa:20141206060452p:plain

テーブルの設計はGUI以外にも普通にテキストで編集可能です。Intellisenseももちろん対応しています。

f:id:kkamegawa:20141206060453p:plain

インデックスもこのように右ペインから追加可能です。

f:id:kkamegawa:20141206060454p:plain

作ったデータベースは右クリックからデータベースに発行可能です。LocalDB、SQL ServerいずれもOKです。

f:id:kkamegawa:20141206060457p:plain

発行先はプロファイルに名前を付けて保存することにより、複数の発行先を使い分けることが可能です。

 

f:id:kkamegawa:20141206060455p:plain

データベースもいつものインターフェースで指定します。

f:id:kkamegawa:20141206060456p:plain

データベース発行時の注意点として、発行時にデータが消失するような更新は抑止されています。もしも問題ない場合、「データ損失が発生する場合に増分配置をブロック」のチェックを外してください。

 

f:id:kkamegawa:20141206060458p:plain

データベース発行後、以前のデータベースの後処理をする場合、「配置後スクリプト」を使用します。

f:id:kkamegawa:20141206060507p:plain

普通のSQLの他、既存のSQLをインポートすることも可能です。差分処理に使ってください。

データベース開発をしている場合の一番厄介な点はスキーマの差分がわかりづらいこと。SSDTはそういうためにデータやスキーマの差分を調べる機能があります。

f:id:kkamegawa:20141206060505p:plain

対象データベースを選択して、比較情報を設定します。

f:id:kkamegawa:20141206060500p:plain

ソース(開発用)とターゲット(本番)を指定します。

f:id:kkamegawa:20141206060501p:plain

比較対象を選択します。今回はテーブルのみです。

f:id:kkamegawa:20141206060503p:plain

すると追加したレコードが表示されます。

f:id:kkamegawa:20141206060502p:plain

こんな風にレコードの中もわかります。「ターゲットの更新」をクリックすると、データの同期が行われます。スキーマの比較も可能です。

f:id:kkamegawa:20141206060504p:plain

こんな風にスキーマに変更を追加しました。

f:id:kkamegawa:20141206060505p:plain

データの比較同様に、スキーマの比較を選択します。

f:id:kkamegawa:20141206060506p:plain

こんな風に比較するスキーマの差分がわかります。スキーマ比較の場合、SQL Serverのバージョンが一致していないとエラーが出るようです。発行前にデータベースプロェクトの設定を忘れずに。

Visual Studio と程よく統合されていて、便利なので、ぜひ使ってください。今回は描きませんでしたが、Visual Studio と統合されているため、ソース管理も便利です。


MSDN Blogs