代码之家  ›  专栏  ›  技术社区  ›  Richard B

SQL Server Compact-架构管理

  •  5
  • Richard B  · 技术社区  · 16 年前

    我一直在寻找一个好的解决方案来实现在 SQL Server Compact 3.5数据库。

    我知道管理模式的几种方法 SQL Server Express ,但Compact版本不支持使用相同方法所需的必要工具。


    我应该扩展一下,说它是为100+客户机包装软件。随着系统的变化,我需要将更新脚本与新的二进制文件一起发布到客户端。我正在寻找一个合适的方法来发布它,而不必只给客户端一个脚本文件并说“在SSMSE中运行这个”。大多数客户都做不到这一点。

    但我的一个SQL版本的脚本在我的一个压缩版本上如何处理却从未透露过。看来我要独自一人了。

    我认为我已经决定要做的,而且需要一个“极客周”来完成,就是写一个类似how的工具 WiX NAnt

    The Code Project 因为我用过这两个网站,以便更好地理解我过去做过的工作的概念,我认为回馈一点可能是值得的。


    编辑日期:2010年5月3日:

    如果有人愿意“命名”这个项目,我会把我为mssql编写的脏/讨厌的版本上传到CodePlex,这样我们就可以开始破解一个sqlcompact版本了。不过,我认为在我计划的初始应用程序的下一个修订版中,我将放弃sqlcompact,而只使用XML文件进行存储,因为软件正在从可安装的包转换为Silverlight应用程序。Silverlight只是提供了一个更好的访问策略。

    4 回复  |  直到 15 年前
        1
  •  2
  •   oillio    15 年前

    我正在调查 Migrator.Net 这允许您直接在C#中写入数据库的更改,称为迁移。
    这些迁移可以包含从简单的表添加/删除、列修改到复杂的数据更新代码的所有内容。

    当应用程序启动时,它可以验证数据库当前的版本,并应用更新所需的任何迁移。所有这些都是自动处理的。运行此更新的代码非常简单:

    Assembly asm = Assembly.Load("LocalModels.migration");
    Migrator m = new Migrator("SqlServerCe", "Data Source=LocalModels.sdf", asm, false);
    m.MigrateToLastVersion();
    

    我在Compact支持上有几个小问题(它假设默认模式是dbo)。但我认为修复它们不会太困难。

        2
  •  0
  •   RobS    16 年前

    一些随机的想法(我不确定我能完全回答)

    1. 这个 Microsoft Sync Framework 是一种选择。在第一次部署之后,我还没有机会完全理解它所能做的事情(它似乎工作得很好)。有一个MSDN网站 here

    2. 您可以在移动设备上执行脚本,但不能通过类似SQL Management Studio的东西来执行,所以理论上您可以管理/维护T-SQL脚本,但缺点是T-SQL会很复杂(对于CE支持的语句),我不知道“自动”执行的方法-但是Sync框架可能有一些答案。。

        3
  •  0
  •   Goyuix    16 年前

        4
  •  -2
  •   Damian Powell    16 年前

    SQLServerManagementStudio对您有用吗?
    http://technet.microsoft.com/en-us/library/ms172933.aspx