我知道stackoverflow中有很多类似的问题,但没有一个完全满足我的要求?
1 - 我不想附加包含 2 个 .mdf .ldf 文件的数据库
2 - 该文件只是一个 .bak 文件
3 - 我不想使用 Microsoft SQL 管理。
4 - 我需要它以编程方式完成?(在我的情况下是c#)
我知道stackoverflow中有很多类似的问题,但没有一个完全满足我的要求?
1 - 我不想附加包含 2 个 .mdf .ldf 文件的数据库
2 - 该文件只是一个 .bak 文件
3 - 我不想使用 Microsoft SQL 管理。
4 - 我需要它以编程方式完成?(在我的情况下是c#)
您可以通过发送 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 文件的写入权限。
查看 .NET 库中的 SMO 对象。这里有一个还原对象,您可以使用它来还原数据库。SQL Server Management Studio 是使用此 SMO 对象构建的,因此您可以使用 SSMS 执行的任何操作都可以使用 C# 执行。