SQL Server从C#备份和还原问题
我已经用C语言编写了一个程序来使用SQL 2008 我想备份数据库并还原它。我的备份代码工作正常,但恢复不起作用,数据库变成单用户 获取以下错误: 数据库日志的尾部 “医生”一词尚未得到证实。使用 使用NORECOVERY进行备份的备份日志 日志,如果它包含您不需要的工作 我想输。与REPLACE或REPLACE一起使用 使用RESTORE的STOPAT子句 语句只覆盖 日志的内容。还原数据库 正在异常终止。 不合格的交易正在进行中 向后滚。估计回滚 我的代码:SQL Server从C#备份和还原问题,c#,sql-server,tsql,sql-server-2008,.net-4.0,C#,Sql Server,Tsql,Sql Server 2008,.net 4.0,我已经用C语言编写了一个程序来使用SQL 2008 我想备份数据库并还原它。我的备份代码工作正常,但恢复不起作用,数据库变成单用户 获取以下错误: 数据库日志的尾部 “医生”一词尚未得到证实。使用 使用NORECOVERY进行备份的备份日志 日志,如果它包含您不需要的工作 我想输。与REPLACE或REPLACE一起使用 使用RESTORE的STOPAT子句 语句只覆盖 日志的内容。还原数据库 正在异常终止。 不合格的交易正在进行中 向后滚。估计回滚 我的代码: private void Bac
private void Backup(string strFileName)
{
try
{
string command = @"BACKUP DATABASE doctor TO DISK='"+ strFileName+"'";
SqlCommand oCommand = null;
SqlConnection oConnection = null;
oConnection = new SqlConnection("Data Source=.;Initial Catalog=doctor;Integrated Security=True");
if (oConnection.State != ConnectionState.Open)
oConnection.Open();
oCommand = new SqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void Restore(string strFileName)
{
try
{
string command = "ALTER DATABASE doctor SET SINGLE_USER with ROLLBACK IMMEDIATE " + "use master " + " RESTORE DATABASE doctor FROM DISK='" + strFileName + "'";
SqlCommand oCommand = null;
SqlConnection oConnection = null;
oConnection = new SqlConnection("Data Source=.;Initial Catalog=doctor;Integrated Security=True");
if (oConnection.State == ConnectionState.Closed)
{
oConnection.Open();
oCommand = new SqlCommand(command, oConnection);
oCommand.ExecuteNonQuery();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我想如果你
“替换为”
使用还原字符串可以正常工作。您遇到的错误是一个
MSSQLSERVER_3159
错误,可以在上找到解释和用户操作
希望有帮助。看起来您的数据库正在使用完全恢复模式,在正常情况下需要日志备份 根据你的情况,尼玛的答案可能就足够了 有关此主题的更多信息,请参阅MSND上的以下主题: