C# 如何使用TSQL语法将.bak恢复到新数据库?

C# 如何使用TSQL语法将.bak恢复到新数据库?,c#,sql,sql-server,restore,C#,Sql,Sql Server,Restore,我知道stackoverflow中有很多类似的问题,但没有一个完全满足我的要求 1-我不想附加包含2.mdf.ldf文件的数据库 2-该文件只是一个.bak文件 3-我不想使用Microsoft SQL管理。 4-我需要以编程方式完成它?(在我的例子中是c#) 看看.NET库中的SMO对象。有一个还原对象可用于还原数据库。SQL Server Management Studio是使用此SMO对象构建的,因此您可以使用SSM执行的任何操作都可以使用C#。您可以通过发送T-SQL命令来恢复数据库(与

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

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


看看.NET库中的SMO对象。有一个还原对象可用于还原数据库。SQL Server Management Studio是使用此SMO对象构建的,因此您可以使用SSM执行的任何操作都可以使用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文件具有写入权限。

这不是离题,您看不到还原到.ldf似乎也能正常工作吗