2

我有一个使用 VS 2008 (C#) 和 SQL Server Express 2008 构建的 WinForm 应用程序,目前部署在测试用户 PC 上。

我对数据库结构进行了修改(添加字段、表等),我想知道在用户 PC 上分发更改的最佳方法是什么(不会丢失用户数据)。

根据我目前所学的内容,我需要将更改写入脚本文件。但是,无需在 SQL Server Management Studio 中手动运行脚本文件的最佳方法是什么?您是否建议使用任何自动分发方法?我必须编写自己的更新应用程序吗?

我目前使用 ClickOnce 分发 EXE 文件中的更改。当您必须使用新版本对数据库进行更改时,ClickOnce 是否仍然是一个可行的解决方案?

TIA

4

3 回答 3

3

有很多方法可以做到这一点 - 或者以某种方式构建自己的本地版本(例如,我们目前正在将数据库更改脚本作为嵌入式资源打包到 DLL 中,并有一个引擎可以在安装时在客户端计算机上运行这些脚本,并且/或更新时间),或者您可以查看现成的 .NET 产品,例如 Red-Gate SQL Packager,它可以为您节省大量时间和精力。

于 2009-01-21T20:33:42.060 回答
1

您可以在启动时编写应用程序以从应用程序文件夹中读取脚本文件并执行它。您可以让脚本在完成后更新数据库中的值,以防止它再次运行。

您可以将新脚本文件部署为内容,应用程序将在下次启动时执行它,升级您的数据库

于 2009-01-21T20:29:01.150 回答
1

您可以调用 MSSQL 附带的 osql 或 sqlcmd。

或者您可以使用 SMO 来运行您的数据库更改脚本。请参阅此博客它是如何完成的。

于 2009-01-21T20:38:30.587 回答