トップ回答者
現在のDBスキーマと、新しいスキーマをゼロから定義するDDL(CREATE文)から、DBスキーマを更新したい

質問
-
SQLServer2012を使用しています。
データモデリングにEnterpriseArchitectというツールを使っており、このツールはDDL(CREATE文)を生成できるため、これを使って開発用DBを構築しています。
しかし、途中でスキーマに変更があった場合、EnterpriseArchitectが生成するDDLはCREATE文なので、そのままでは更新できません。
先にDROP TABLEしてしまえば良いのですが、それだとデータが消えてしまいます。
可能な限り、データを消さずにスキーマを更新したいのですが、このEnterpriseArchitectが生成するCREATE文をうまく活用する方法はありますか?
ManagementStudioにそのような機能があったりすると、とても助かるのですが・・・
よろしくお願いします。
回答
-
Open DBDiff という2つのDB間のスキーマの比較をするツールがあります。
https://opendbiff.codeplex.com/
なので、EnterprizeArchitectで吐き出したCREATE文を別のDBにつくって比較すれば良いと思います。
差分を取るときにSQL文も出してくれるので、それを実行すればよい、
はずなのですが、多分そのまま実行すると、いろいろエラーが出ると思います。
が、どの辺が違っているのかはSQL文みればわかるとおもいますので
それだけでも結構楽だと思います。- 回答としてマーク femp 2015年5月19日 1:46
すべての返信
-
Open DBDiff という2つのDB間のスキーマの比較をするツールがあります。
https://opendbiff.codeplex.com/
なので、EnterprizeArchitectで吐き出したCREATE文を別のDBにつくって比較すれば良いと思います。
差分を取るときにSQL文も出してくれるので、それを実行すればよい、
はずなのですが、多分そのまま実行すると、いろいろエラーが出ると思います。
が、どの辺が違っているのかはSQL文みればわかるとおもいますので
それだけでも結構楽だと思います。- 回答としてマーク femp 2015年5月19日 1:46