SQL Server Management Studioを使って、データベースの差分をとる

user-pic
0 Clip to Evernote



データベース開発を行っている場合、テストデータベースサーバがいったんテーブル等のオブジェクトを作成し、
テストサーバでテストしたあと、運用機にあるデータベースサーバに同じオブジェクトを作るということがよくある。

この場合、通常はテストデータベースサーバと全く同じものを運用機にも作成する必要があるが、
運用機が既にユーザに提供している場合、単純にテストデータベースを運用データベースにリストアするわけにはいかない。

そのため、テストサーバで作成したオブジェクトだけ運用機データベースサーバに持っていくのだが、
ちゃんと全部もってきたか、その差分を取りたい。

SQL Server Management StudioのSQLスクリプト生成機能を使うと、こんな感じだろうか


1.Management Studioでデータベースを開き、該当のデータベースを選択したあと、「タスク」→「スクリプトの生成」を選ぶ

2.「スクリプトオプションの選択」ウィザードが表示されたら、全般の項目にある「説明用ヘッダーを含める」をFalseにする

3.2のあと各オブジェクトの選択ウィザードは、すべて選択で

4.「出力オプション」ウィザードでは、スクリプトモードを「スクリプトをファイルに保存」にする。
  生成するファイルを「オブジェクトごとのファイル」、名前を付けて保存は「ANSIテキスト」にした状態で、
  SQLを保存するフォルダを選択する

5.次のウィザードで「完了」ボタンを押し、SQLを生成する


終了すると、先ほど選択したフォルダに各オブジェクトごとのSQLファイルが生成される。
これを、テストデータベースサーバと運用データベースサーバで行い、フォルダごと差分をとる。

差分をとるツールには、以下のソフトを用いた。

DF
http://www.vector.co.jp/soft/win95/util/se113286.html

フォルダ・ファイル単位の差分をとることができて、画面もシンプル。
ただし、unicodeは扱えないようだ。(先の手順で「ANSIテキスト」を選択したのは、このため)



■関連記事


ドミノ・ピザ【PC向けサイト】 楽天トラベル株式会社 NEC Direct ・NECダイレクト