私はこれを処理しようとする多くの方法がわからないのを見てきましたが、最終的には手動のスクリプトを維持するだけでよいと思います。
さて、あなたは必ずしも自分で書く必要はありません。 MSSQLでは、変更を加えるときに、スクリプトを生成するための小さなボタンがあります。このボタンは、行っている変更のSQLスクリプトを吐き出します。あなたがOracleについて話していることは知っています。私が彼らのGUIを使ってから数年が経ちましたが、彼らが同じ機能を持っていると想像することしかできません。
ただし、スクリプトを手動で操作することから逃れることはできません。新しい列のデフォルト値や、名前が変更された/削除された/移動された列のデータを処理する方法など、既存のデータに関して多くの問題が発生します。これは、時間の経過とともにデータベーススキーマを操作する際の分析の一部にすぎず、回避することはできません。完全に自動化されたソリューションでこれを行おうとすると、遅かれ早かれデータが台無しになります。
私がお勧めすることの1つは、作業を少し楽にするために、スキーマの変更とコードの変更を確実に分離することです。違いは、テーブルと列へのスキーマの変更は、一度だけ実行する必要があり、そのため、個別の変更スクリプトとしてバージョン管理する必要があることです。ただし、ストアドプロシージャ、関数、さらにはビューなどのコード変更は、何度も実行でき(実行する必要があり)、他のコードファイルと同じようにバージョン管理できます。私が見たこれに対する最善のアプローチは、VSSにすべてのproc /関数/ビューがあり、ビルドプロセスがすべてを削除し、更新のたびにそれらを再作成する場合でした。これは、すべてが常に最新であることを確認するため、C#/Java/その他のコードの再構築を行うのと同じ考えです。