2

VS 2008(C#)とSQL Server Express 2008で構築されたWinFormアプリケーションがあり、現在テストユーザーのPCに展開されています。

データベース構造に変更を加える(フィールドやテーブルを追加するなど)のですが、ユーザーのPCに変更を(ユーザーのデータを失うことなく)配布するための最良の方法は何でしょうか。

これまでに学んだことから、変更をスクリプトファイルに書き込む必要があります。しかし、SQL Server Management Studioでスクリプトファイルを手動で実行せずにスクリプトファイルを配布するための最良の方法は何ですか?あなたが提案する自動配布方法はありますか?独自の更新アプリケーションを作成する必要がありますか?

現在、ClickOnceを使用してEXEファイルの変更を配布しています。新しいバージョンでデータベースに変更を加える必要がある場合でも、ClickOnceは実行可能なソリューションですか?

TIA

4

3 に答える 3

3

これを行う方法はたくさんあります。独自のバージョンを何らかの方法で構築します(たとえば、現在、データベース変更スクリプトを埋め込みリソースとしてDLLにパッケージ化し、インストール時にクライアントマシンでそれらを実行するエンジンを備えています。 /または更新時間)、またはRed-Gate SQL Packagerのようなすぐに利用できる.NET製品を見ることができ、多くの時間と労力を節約できます。

于 2009-01-21T20:33:42.060 に答える
1

起動時にアプリケーションを作成して、アプリケーションフォルダーからスクリプトファイルを読み取り、実行することができます。完了したら、スクリプトでデータベースの値を更新して、再度実行されないようにすることができます。

新しいスクリプトファイルをコンテンツとしてデプロイできます。アプリケーションは次回の起動時にそれを実行し、データベースをアップグレードします。

于 2009-01-21T20:29:01.150 に答える
1

MSSQL に同梱されている osql または sqlcmd を呼び出すことができます。

または、SMO を使用してデータベース変更スクリプトを実行することもできます。作り方はこちらのブログをご覧ください。

于 2009-01-21T20:38:30.587 に答える