适用于Windows桌面应用的可再发行的本地数据库

时间:2012-09-03 08:19:16

标签: sql-server

我对以下的不同感到有些困惑:

  1. SQL Server Express
  2. SQL Server Compact
  3. 的LocalDB
  4. 我的要求是开发一个使用基本RDBMS功能的桌面应用程序。我需要打包应用程序并允许用户安装单个分布式软件包。我不希望用户安装SQL server express。

    在这种情况下,我应该使用哪个DB? SQLite不被认为必须进行太多的重新编码。

    谢谢。

1 个答案:

答案 0 :(得分:2)

SQL Server Express是功能齐全的DBMS,在数据库大小和允许使用的资源方面存在一些限制。您可以看到它的限制(相对于SQL Server)on microsofts site (Features Supported by the Editions of SQL Server 2012)

SQL Server CE是嵌入式数据库,意味着它以用户模式运行,易于部署(需要您只复制几个程序集),轻量级但速度快,可由低权限用户运行。它得到了NHibernate的支持。但是,有更多的限制。对我来说最值得注意的是,当您尝试与同一数据库建立多个连接时会出现问题。尽管MS声称支持此功能,但如果在Windows 2008服务器中尝试此功能,则会失败。更糟糕的是,这种使用场景可能会导致数据库损坏。这意味着在服务/网站运行时,您将无法使用某些管理工具更新数据。此外,SQL Server Management Studio不再支持SQL CE,因此您必须使用第三方工具,如Database.NET。它也不支持子查询。

localDB,没有使用它,听起来像是妥协。它是一个独立的数据库,以用户模式执行(可由低权限用户使用),但必须安装,因此您需要该部分的管理权限。提供SQL Server Express的一组功能。它比SQL CE大得多,并且还需要安装(与CE不同,它只是二进制插入)。此DBMS的最短概述can be found here.