如何恢复 SQL Server 2012 数据库?

如何从 SQL Server 2012 还原数据库?


这是我的代码:


private void [connTes()][1]

{

        try

        {

            conString = "server=.\\SQLEXPRESS;database=db_datatestproject;user=admin;password=123;Integrated Security=True";

            connnn = new SqlConnection(conString);

            connnn.Open();

        }

        catch

        {

        }

}


private void button1_Click(object sender, EventArgs e)

{

        connTes();


        try

        {

            if (txtlocation.Text == "")

            {

                MessageBox.Show("select database");

                return;

            }

            else

            {

                string databesing = connnn.Database.ToString();

                string a = "ALTER DATABASE " + databesing + " SET SINGLE_USER WITH ROLLBACK IMMEDIATE;";

                a += "RESTORE DATABASE "+databesing+" FROM DISK ='"+txtlocation.Text+"' WITH REPLACE;";


                SqlCommand cmd = new SqlCommand(a, connnn);

                SqlDataReader dr = cmd.ExecuteReader();

                connnn.Close();

                connnn.Dispose();


                MessageBox.Show("done restored");

            }

        }

        catch(SqlException ex)

        {

            MessageBox.Show(ex.ToString());

        }

}

这是我得到的错误:


RESTORE 无法处理数据库“db_testproject”,因为它被会话使用。建议在执行此操作时使用master 数据库。RESTORE DATABASE 异常终止。


如何修复此错误?


摇曳的蔷薇
浏览 159回答 1
1回答

哈士奇WWW

添加USE MASTER;  GO到您的 TSQL 恢复命令的开始。您需要在另一个数据库中,而不是在您要恢复的数据库中。另请注意@marc_s 的评论:“由于您没有从中取回任何数据SqlCommand,请使用ExecuteNonQuery()代替ExecuteReader()”
打开App,查看更多内容
随时随地看视频慕课网APP