2016-11-09 130 views
0

我的C#.NET(4.5.2)应用程序访问本地SQL Server(13.0.1601)数据库。访问没有SQL Server服务的SQL Server数据库

为了数据存档的目的,我的客户想要将程序和数据库的快照打包到文件夹中,以便在需要时运行旧状态。

这怎么能实现没有运行SQL Server服务但只有文件夹内容和安装的.NET运行时?

迄今为止考虑的选项是将数据库导出到.bak或.csv并将它们放在文件夹中,但这些似乎涉及大量的手工劳动。

+0

这个数据库在表格/大小方面有多大? –

+1

一个字:*** IT can not *** - 句点。如果你有一个SQL Server数据库 - 那么***必须使用某种形式的SQL Server并运行来使用这些数据。没有办法解决(除了将所有数据导出为例如XML或其他格式)..... –

+0

@Thiago:非常小。 〜20桌和〜25Mb。 – user2586856

回答

0

没有嵌入式版本的SQL Server。最接近的是自2012版以来的LocalDB功能 - 它确实需要安装一些SQL Server组件,但不需要运行服务。安装完成后,您需要附加快照的MDF和LDF文件(必要时为只读)。

2

正如marc的评论中所述,您需要运行SQL实例才能使用备份文件。

将它导出到一个.bak文件并不是一件“很多工作” - 它只是涉及登录到SQL Server(从应用程序)并发出正确的SQL命令。

但是为了再次查看它,您将不得不将其重新导入到SQL实例中 - 这与上述步骤相反(尽管显然您必须重命名它,因为原始数据库仍将驻留在SQL实例中)。

如果您希望避免安装SQL实例(服务),那么可能SQL Server Express LocalDB是您的一个选择 - 它完全在内存中运行。

+0

我发布了自己的解决方案,而@slugster发布了这个,但我更喜欢这个,slugster的解决方案。应该减少很多工作,并且使用正确的脚本,返回查看以前的快照应该只需点击几下即可。 – AgapwIesu

+0

“很多工作”是为了能够使用这些格式之一所必需的手动代码适配。感谢LocalDB的建议。这不是全部在一个文件夹中,但它是一个开始。 – user2586856

0

您可以创建脚本将表格导出为CSV,并修改程序以使用q将sql查询直接运行到这些CSV文件。