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