データベース開発を行っている場合、テストデータベースサーバがいったんテーブル等のオブジェクトを作成し、
テストサーバでテストしたあと、運用機にあるデータベースサーバに同じオブジェクトを作るということがよくある。
この場合、通常はテストデータベースサーバと全く同じものを運用機にも作成する必要があるが、
運用機が既にユーザに提供している場合、単純にテストデータベースを運用データベースにリストアするわけにはいかない。
そのため、テストサーバで作成したオブジェクトだけ運用機データベースサーバに持っていくのだが、
ちゃんと全部もってきたか、その差分を取りたい。
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テキスト」を選択したのは、このため)





