0

I am getting a little bit confused about the difference of the followings:

  1. SQL Server Express
  2. SQL Server Compact
  3. localDB

My requirement is to develop a desktop application that will use basic RDBMS features. I need to package the application and allow the user to install a single distributed package. I don't want the user to install even SQL server express.

In this case, which DB I should use? SQLite is not considered as too much re-coding has to be done.

Thank you.

4

1 回答 1

2

SQL Server Express 是功能齐全的 DBMS,但在数据库大小和允许使用的资源方面存在一些限制。您可以在 microsoft 网站上查看它的限制(相对于 SQL Server)(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 的最短概述。

于 2012-09-03T08:30:12.600 回答