Error هنگام Restore کردن در SQL
من در یک پروژه از ریستور زیر استفاده میکردم و کار میکرد الان با اضافه کردن چند تیبل جدید بک آپ میگیره ولی ریستور نمیکنه و اروری میده مبنی بر در حال استفاده بودن دیتابیس . در این حالت اگر سیستم رو ریستارت کنم بعد دوباره در پروژه ریستور کنم کار میکنه ممنون میشم دوستان در صورت اطلاع از
این مشکل من رو راهنمایی کنند سپاسگزارم
Dim Open1 As New OpenFileDialog
Open1.FileName = "DB"
Open1.FilterIndex = 1
If Open1.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim str As String = "\DB_Design.mdf"
Dim con As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DB_Design.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
con.Open()
Dim cmd As New SqlCommand()
SqlConnection.ClearAllPools()
cmd.Connection = con
cmd.CommandType = CommandType.Text
con.ChangeDatabase("master")
cmd.CommandText = "USE MASTER RESTORE DATABASE [" + System.Windows.Forms.Application.StartupPath & str + "] FROM DISK = N'" + Open1.FileName.ToString + " '"
cmd.ExecuteNonQuery()
con.Close()
End If
نقل قول: Error هنگام Restore کردن در SQL
سلام دوست عزیز
RESTORE DATABASE [نام دیتا بیس] FROM DISK = N'مسیر فایل بک آپ' WITH FILE = 2, NOUNLOAD, STATS = 10
نقل قول: Error هنگام Restore کردن در SQL
سلام ،
محتمل ترین دلیلش اینه که شما زمانی که میخواین یه دیتابیس رو Restore کنین یعنی در واقع دارین اونو پاک میکنین !! پس SQL Server جلوی این کار رو میگیره چون Service Based هستش و هیج تضمینی نیست که اون لحظه چند تا کانکشن به اون دیتابیس وصله.
شما باید اول دیتابیس رو از حالت Share و یا Multi User خارج کنین و اونو به Single User تبدیل کنین و بعد از عملیات Restore دوباره به حالت نرمال برگردونین.
بنده 10 سالی هست VB کار نکردم و Syntax هاش یادم رفته ! این کد با سی شارپ هستش ، زحمت تبدیل رو بکشین :
*** ضمنا در خصوص از دست رفتن اطلاعاتتون دقت کنین ، قبلش حتما یک بک آپ بگیرین.
public void Restore(string Filepath)
{
try
{
if(con.State == ConnectionState.Closed)
{
con.Open();
}
SqlCommand cmd1 = new SqlCommand("ALTER DATABASE [" + Database + "] SET SINGLE_USER WITH ROLLBACK IMMEDIATE ", con);
cmd1.ExecuteNonQuery();
SqlCommand cmd2 = new SqlCommand("USE MASTER RESTORE DATABASE [" + Database + "] FROM DISK='" + Filepath + "' WITH REPLACE", con);
cmd2.ExecuteNonQuery();
SqlCommand cmd3 = new SqlCommand("ALTER DATABASE [" + Database + "] SET MULTI_USER", con);
cmd3.ExecuteNonQuery();
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
con.Close();
}
نقل قول: Error هنگام Restore کردن در SQL
از دوستان کمال تشکر رو دارم سپاس