2011-05-18 65 views
6

到目前为止,我一直在我的桌面应用程序上使用SQL Server Express,即使通常服务器仅由单个应用程序(由单个用户)在同一台机器上使用。由于全功能服务器相当沉重,这对我来说似乎有点无聊。从使用SQL Server Express切换到SQL Server Compact

然后我发现有一些叫做SQL Server Compact的东西。事情是,我的应用程序已经相当大。所以我的问题是,如果我想更改为SQL Server Compact,那么我们在讨论(使用C#)时对我的代码进行了哪些更改?

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

回答

10

对于独立的桌面产品,它当然是一个轻量级选项,可以考虑使用SQL Express。

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

另一个考虑因素是虽然SSMS将与SQL CE数据库一起使用,但它不像SQL Express那样功能全面。然而,有很多好的工具可以填补这些空白。请看一下Erik Jensen的博客,以获得一个好的概述。

Everything SQL Server Compact

还检查了他的工具,迁移的SQL Express数据库SQL紧凑:

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

最后看一看这太问题两个产品之间更多的背景:

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

+0

那么什么可能是Windows应用程序的最佳选择? express或CE? – Neo 2013-11-15 05:18:59

1

我最近和它一起工作,顺便说一下,我所知道的关于使用它们的事情是SQL Express有一个服务器可以连接到,而Compact是一个sdf文件,所以你必须改变的第一件事是连接字符串。

经过这个改变,没有更多的重大改变要做,我记得,Compact可以使用Express服务器几乎所有的指令,所以,它不会有太大的问题。

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

再见。

0

SQL CE与Express有相同的大小限制,所以你应该很好。

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

+1

大小限制:SQL CE 4.0限于4GB。从SQL Express 2008开始,Express的限制已经提高了10GB。 – 2012-04-23 14:29:09

1

我会再次投票st SQL CE:

  1. 它有no views,这可能是迁移时的问题。
  2. 我们最近做了类似的事情,当您从SQL Server Express切换到SQL Server Compact Edition时,您所描述的内容会产生巨大的性能影响。

我的建议是:

  1. 使用SQLite(我们没有为我所提到的项目 - 这是比SQL CE更好的性能,在我们的例子) - 或 -
  2. 使用VistaDB(我在其他项目中做过;不像SQL Server Express那样高效,但仍然足够)

这两个数据库都可以是XCO部署PY,就像SQL Server Compact Edition一样。