3

我知道stackoverflow中有很多类似的问题,但没有一个完全满足我的要求?

1 - 我不想附加包含 2 个 .mdf .ldf 文件的数据库
2 - 该文件只是一个 .bak 文件
3 - 我不想使用 Microsoft SQL 管理。
4 - 我需要它以编程方式完成?(在我的情况下是c#)

4

2 回答 2

17

您可以通过发送 T-SQL 命令来恢复数据库(与发送select查询相同)。例如:

restore database NameOfYourDb
from    disk = 'c:\backups\NameOfYourDb.bak'
with    recovery,
        move 'NameOfYourDb_Data' to 'c:\data\NameOfYourDb.mdf',
        move 'NameOfYourDb_Log' to 'c:\data\NameOfYourDb.log'

二是可以存储在 .bak 文件中的最小文件数。每个数据库至少有一个数据和一个日志文件(扩展名分别为 .mdf 和 .log。)

请注意,还原是由 SQL Server 服务完成的。您必须从该服务的角度提供路径。运行 SQL Server 的帐户需要对 .bak 文件的读取权限以及对 .mdf 和 .log 文件的写入权限。

于 2013-09-28T19:08:24.453 回答
1

查看 .NET 库中的 SMO 对象。这里有一个还原对象,您可以使用它来还原数据库。SQL Server Management Studio 是使用此 SMO 对象构建的,因此您可以使用 SSMS 执行的任何操作都可以使用 C# 执行。

于 2013-09-28T19:02:07.367 回答