Sql根据bak文件还原

本文介绍了一种使用C#代码实现SQLServer数据库从bak文件还原的方法,包括检测bak文件完整性及关闭现有数据库链接的步骤。通过具体代码示例,展示了如何读取bak文件的详细信息,设置替换和移动数据库文件路径,以及执行数据库还原操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sqlserver 根据bak 文件进行还原

public bool InitDataBaseBak(string bakpath)
{

try
{
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
//SqlCommand command = new SqlCommand(sqlRestoreDatabase, connection);
var strsql = " restore filelistonly from disk = '" + bakpath + "'";
SqlDataAdapter Adapter2 = new SqlDataAdapter(strsql, connection);
var dt = new DataTable();
lock (Adapter2)
{
Adapter2.Fill(dt);
}
var dataBaseName = dt.Rows[0][0].ToString();
var log= dt.Rows[1][0].ToString();
var mdfpath = dt.Rows[0][1].ToString();
var logpath = dt.Rows[1][1].ToString();
string InitDatabaseSql =string.Format(@"restore database {0} from disk = '{1}'
with REPLACE
, move '{2}' to '{3}'
,move '{4}' to '{5}'", dataBaseName, bakpath, dataBaseName, mdfpath, log, logpath);
SqlCommand command = new SqlCommand(InitDatabaseSql, connection);
connection.Open();

command.ExecuteNonQuery();
connection.Close();
}

return true;
}
catch (Exception e)
{
return false;

throw;
}
}

检测bak 文件是否完整
restore filelistonly from disk = ‘bak文件所在位置’
关闭数据库现有链接
use master
alter database ’ 数据库名称‘ set offline with rollback immediate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值