sql-server - SQL Server Compact - 架构管理

标签 sql-server sql-server-ce

我一直在寻找一个好的解决方案来实现在 SQL Server Compact 上管理架构的想法。 3.5数据库。

我知道管理SQL Server Express上的架构的几种方法。 、SQL Server Standard、SQL Server Enterprise,但精简版不支持使用相同方法所需的必要工具。

有什么建议/提示吗?

<小时/>

我应该对此进行扩展,说它适用于 100 多个使用包装软件的客户端。随着系统的变化,我需要将更新脚本与新的二进制文件一起发布到客户端。我正在寻找一种合适的方法来发布此内容,而不必只向客户端提供脚本文件并说“在 SSMSE 中运行此内容”。大多数客户都没有能力做这样的事情。

我的一个 friend 透露了关于如何处理我的任务中 SQL Server 部分的部分脚本,但从未在 Compact Edition 上工作过。看来我只能靠自己了。

我认为我已经决定要做的事情,并且需要一个“极客周”才能完成,就是编写某种类似 WiX 的工具。和 NAnt有效,这样我就可以编写一个过于热心的 XML 文档来处理这项工作。

如果我认为值得,我会将其发布在 CodePlex 和/或 The Code Project 上因为我曾经使用过这两个网站,以便更好地理解我过去所做的工作的概念,并且我认为回馈一点可能是值得的。

<小时/>

2010 年 5 月 3 日编辑:

如果有人愿意为该项目“命名”,我会将我为 MS SQL 编写的肮脏/令人讨厌的版本上传到 CodePlex,以便我们可以开始破解 SQL Compact 版本。尽管如此,我认为在我计划的初始应用程序的下一个版本中,我将放弃 SQL Compact,而仅使用 XML 文件进行存储,因为该软件正在从可安装包转换为 Silverlight 应用程序。 Silverlight 只是提供了更好的访问策略。

最佳答案

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

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

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

我在 Compact 支持方面遇到了一些小问题(它假设默认架构是 dbo)。但我认为修复它们不会太困难。

关于sql-server - SQL Server Compact - 架构管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/699884/

相关文章:

c# - 如何检查 SQL Compact 自动收缩设置?

sql-server-ce - 如何使用 SSMS 连接到 SQL Server CE 文件

c# - 当我尝试通过存储过程插入空值时出现 SqlException

sql - SQL Server 中的 DATALENGTH VARCHAR

sql-server - 从存储过程引用远程 MS SQL 数据库

sql-server - 数据库更新托盘通知

windows-phone-7 - Windows Phone 如何在 SqlCe 数据库中存储图像

sql-server - 执行存储过程比执行SQL花费的时间太长

在 SQL CE(精简版)版本 3.5 中对字母数字字段进行排序

c# - SQL Server CE 异常 InvalidDatabaseFormatException