从使用SQL Server Express切换到SQL Server Compact

时间:2011-05-18 12:49:16

标签: c# sql sql-server-ce sql-server-express

到目前为止,我一直在我的桌面应用程序上使用SQL Server Express,即使通常服务器仅由单个用户在同一台​​机器上使用该单个应用程序。这对我来说似乎总是有些愚蠢,因为全开服务器相当沉重。

然后我发现有一种叫做SQL Server Compact的东西。事实上,我的申请已经相当庞大。所以我的问题是,如果我想更改为SQL Server Compact,我们会谈论对我的代码进行哪些更改(使用C#)?

主要是我想知道我是否可以像访问Express一样访问Compact -version,它使用ADO.NET并将其指向localhost \ sqlexpress。那么是否可以使用Compact创建另一个实例并将我的应用程序指向它,或者是以完全不同的方式使用它?

4 个答案:

答案 0 :(得分:10)

对于独立的桌面产品,它肯定是考虑SQL Express的轻量级选项。

然而,除了连接字符串之外,两者之间存在差异。例如,SQL CE不支持存储过程,用户定义的函数或触发器。此外,它不支持Express支持的所有数据类型。在技​​术层面上,它也会与您的应用程序一起运行。

另一个考虑因素是虽然SSMS可以与SQL CE数据库一起使用,但它并不像SQL Express那样功能齐全。然而,有很多好的工具可以填补这些空白。查看Erik Jensen的博客,了解更多信息。

Everything SQL Server Compact

另请查看他的SQL Express数据库迁移到SQL Compact的工具:

How to Migrate/Downsize a SQL Server database to SQL Server Compact 4.0 (and 3.5)

最后看看这个SO问题,了解两种产品之间的更多背景知识:

What are the limitations to SQL Server Compact? (Or - how does one choose a database to use on MS platforms?)

答案 1 :(得分:1)

我最近使用它,顺便说一下我所知道的使用它们的方法是SQL Express有一个连接服务器,而Compact是一个sdf文件,所以你必须要改变的第一件事是连接字符串。

在这个改变之后,没有更多的重大改变要做,我记得,Compact几乎所有快递服务器的指令都可用,所以,它不会有太多问题。

请查看Microsoft文档以获取更多信息,或访问Wikipedia

见。

答案 2 :(得分:1)

我会投票反对SQL CE:

  1. 它有no views,迁移时可能会出现问题。
  2. 我们最近做了一些与您描述的类似的事情,并且在从SQL Server Express切换到SQL Server Compact Edition时产生了巨大的性能影响。
  3. 我的建议是:

    1. 使用SQLite(我们为我提到的项目所做的 - 在我们的案例中, 比SQL CE更高效) - 或 -
    2. 使用VistaDB(我在其他项目中执行过;不像SQL Server Express那样高效,但仍然足够)
    3. 两个数据库都可以部署XCOPY,就像SQL Server Compact Edition一样。

答案 3 :(得分:0)

SQL CE与Express具有相同的大小限制,因此您应该很好。

就两者之间的移动而言,我发现this用于在快速数据库和紧凑型3.5数据库之间移动。然后我认为你只需要改变你的connection strings(而不是指向一个主机/实例,你指向转换后的文件)。但是,两者之间存在不同的features,因此您可能必须在原始数据库中更改架构才能使转换顺利进行。