【问题标题】:Release plan for my application on other machine by using .mdf file使用 .mdf 文件在其他机器上发布我的应用程序的计划
【发布时间】:2013-07-02 01:43:36
【问题描述】:

我正在使用 SQL Server 2008 R2 和 VS2010。我使用这个工具制作了简单的应用程序。我在我的应用程序中将数据库附加为 .mdf 并将该应用程序部署在其他机器上,它工作正常。现在,如果我计划发布包含一些扩展功能的应用程序的新版本,我可以通过 DLL 上传代码,但问题是更新 .mdf 文件,为了处理这个问题,我将数据库导出到 .xls 表中(应用程序有一个备份数据库的实用程序)然后导入 SQL Server 以创建新的 .mdf 文件。有人对此有更好的解决方案吗?我可以在 SQL Server(第三方软件)中打开旧版本的 .mdf 文件并在其上执行 DML/DDL 脚本以兼容最新的代码和数据库吗?我可以将 .sql 文件保存在我的项目代码之一中并通过某个实用程序执行它吗? C# 中的任何类都可以处理这个..?

【问题讨论】:

    标签: c# visual-studio-2010 sql-server-2008-r2 release-management mdf


    【解决方案1】:

    我没有完全收到您的询问。您想通过应用程序升级数据库吗? 您当然可以通过您的应用程序运行 .sql 文件,但我不确定它是否会帮助您更改数据库配置。

    或者,如果您已经有更新的 .mdf 文件并且数据库名称相同,那么您可以按照以下步骤操作。 1.通过SSMS在第三方环境中通过SSMS分离数据库。 2. 替换磁盘中的 .mdf、.ldf 和 .ndf(如果有)。 3. 附上更新的 .mdf 文件。 这将获得新的对象定义以及数据。

    【讨论】:

    • 我不想丢失旧 .mdf 文件中的数据。只是我想将旧 .mdf 文件中的数据和一些新的表结构或新的 colm 添加到该 .mdf 文件中。
    • 哦,好的。然后我想你可以简单地通过 SSMS 为旧数据库中的所有修改对象生成 sql 脚本到一个 .sql 文件,并在新的数据库服务器中运行它们。
    • 最好由SSMS来做,在哪里,你可以按照以下步骤。 1. 将对象资源管理器连接到旧数据库。 2. 右键单击​​数据库并进入任务 -> 生成 SQL 脚本,然后按照窗口中的说明进行操作。也可以通过 SQL 代码来完成,但这有点迂回。如果您对此过程不满意,请告诉我,我可以为您提供代码。
    • 我知道SSMS中数据库的脚本生成过程。但关注的不是生成数据库脚本,而是将旧的 .mdf 数据合并到 新的数据库结构,在合并该数据后,我可以将新版本的 .mdf 文件复制到我的项目中,该项目集成了我的新数据库结构和客户端数据到新版本的 .mdf 文件中,即使我能够生成数据库脚本,如何将旧数据合并到这个脚本中??
    • 据我所知,没有合并.mdf文件的过程,因为SQL Server不知道在最终数据库中保留哪些数据,以防表结构、约束或发生数据冲突。
    【解决方案2】:

    据我所知,没有合并 .mdf 文件的过程,因为 SQL Server 可能无法正确识别相似的对象,因为 sys 表可能不同,并且也不会知道在最终数据库中保留哪些数据,以防发生表结构、约束或数据冲突。

    但是,根据您的要求,我可以建议的最佳方法是,
    1. 为修改的表生成 Alter 脚本(通过右键单击对象名称并使用 Script Table As.. 选项)。当然,我假设您已经修改了对象列表和修改。
    2. 通过网络连接两台数据库服务器,并为您想要的表编写一个 SSIS 包或将旧数据库中的数据导入新数据库。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-07
      • 1970-01-01
      • 2012-12-13
      • 2021-12-05
      • 1970-01-01
      • 2016-01-12
      相关资源
      最近更新 更多