基于服务的数据库 vs SQL Server Compact vs LocalDB?

10

我的目标是创建一个独立的C# Windows窗体应用程序,其中包括2-3个表格,将使用安装程序文件安装在客户端机器上。而且我不想在客户端机器上安装SQL Server 2008软件,我正在使用Visual Studio 2013 C#进行开发。

我的选择是SQL Server Compact 4.0,但我没有看到Visual Studio 2013内置支持它,当我向项目添加新项时,我没有看到Compact (.sdf) 文件选项。

我已经安装了第三方SQL Server Compact Toolbox,以便可以创建.sdf 文件并进行连接,但我相信Microsoft现在不再为压缩数据库提供支持。

我可以看到服务型数据库( .mdf) 文件,实际上是一个 LocalDb\\ 这样的东西。

那么,如果我不想在客户端安装SQL Server 2008,但想要在客户端软件中拥有数据库,我应该使用什么?


如果你只有2-3个表,为什么不使用MS Access数据库呢?你可以将Access数据库作为文件添加到安装程序项目中,并且可以轻松地部署到客户机器上。 - Kurubaran
1
也许这可以帮助:http://stackoverflow.com/questions/2990750/how-to-choose-light-version-of-database-system - adopilot
6
如果你正在使用 .mdf 文件或 LocalDB,那么你正在使用 SQL Server(完整版),因此你必须在客户端安装 SQL Server 软件,可能是 Express 版本或进一步精简的 LocalDB 版本,但仍需安装软件。 - marc_s
4
您想要一个SQL数据库,但不想安装任何软件?也许您实际上并不需要SQL数据库,可以使用XML文件。此外,LocalDB现在是事实上的标准,而SQL CE是旧的软件。另外,LocalDB提供了静默安装模式,您可以在此处获取localdb.msi安装程序http://www.microsoft.com/en-us/download/details.aspx?id=29062。 - Shaun Wilson
2个回答

4

您应该主要基于目标平台和您期望的SQL Server功能水平来选择。

目标平台:

LocalDB不支持较旧版本的Windows(例如Windows XP)或WoWToad World的LocalDB概述很好地说明了它的目标平台限制。

SQL Server Compact Edition的目标平台限制非常少。请查看其下载页面下的“系统要求”以获取具体信息。

功能性:

LocalDB在功能上更接近SQL Server Express。 SQL Server Compact Edition有许多功能限制(例如不支持存储过程)。

MSDN介绍LocalDB的概述解释了LocalDB和SQL Server Compact Edition之间许多重要的功能差异;而上述Toad World LocalDB概述也解释了一些关于LocalDB功能的期望(或不期望)。

重新分发:

根据其下载页面的“附加信息”部分,SQL Server Compact Edition和LocalDB(根据SQL Server论坛)都可以自由重新分发:因此您可以放心使用任何一个。


@marc_s:LocalDB是SQL Server Express的一种版本,它有一些限制和简化,而这些限制和简化在SQL Server Express正式版中并不适用。例如,SQL Server Express支持远程连接和除了命名管道之外的协议;而LocalDB则不支持。在很多情况下,LocalDB和完整的SQL Server Express之间的差异可能并不重要,但它们确实存在差异。请参考我引用的参考资料,了解更多示例。 - J0e3gan
1
是的 - 但事实仍然存在 - LocalDB基于SQL Server Express并且需要安装 - 不能仅通过复制几个DLL来使用。 - marc_s
@marc_s:好的。安装程序更小,安装LocalDB也更简单。从技术上讲,SQL Server Compact Edition也需要安装(http://technet.microsoft.com/en-us/library/ms174619.aspx)-虽然它可能会被混合到应用程序安装中。在这方面,我认为LocalDB是介于完整的SQL Server Express和SQL Server Compact Edition之间的灰色地带。 - J0e3gan

2
也许SQLite会是一个选择?请查看:http://www.sqlite.org/ 你只需要引用一个DLL/Assembly,很简单直接。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接