Trong bài viết này tôi sẽ hướng dẫn bạn làm thế nào để phục hồi cơ sở dữ liệu SQL Server sử dụng T-SQL. Lấy cơ sở dữ liệu sao lưu và phục hồi là một trong những phần quan trọng nhất trong phát triển phần mềm điều khiển cơ sở dữ liệu. SQL Server Management Studio cung cấp cơ sở dữ liệu chức năng sao lưu và phục hồi.
Bây giờ, tôi chỉ cho bạn làm thế nào để RESTORE cơ sở dữ liệu sử dụng SQL Server Management Studio.
Bước 1
Vào SQL Server Management Studio và đăng nhập
Bước 2
Nhấp vào New Query
Bước 3
Viết đoạn mã sau để phục hồi cơ sở dữ liệu, dbName là tên cơ sở dữ liệu.
----Make Database to single user Mode
ALTER DATABASE dbName
SET SINGLE_USER WITH
ROLLBACK IMMEDIATE
RESTORE DATABASE MyBlog
FROM DISK='D:\MyBlog_20130831.bak'
WITH REPLACE,STATS=5
--You can also add the STATS Clause if it is a big database to know the percentage finished.
--If any error occurs then Run the following script in order to bring the Database for Multi User.
ALTER DATABASE DatabaseName SET MULTI_USER
Bây giờ tôi sẽ xây dựng ứng dụng C # RESTORE cơ sở dữ liệu.
Phần 1
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace SQL_Server_DB_Backup_and_Restore
{
public partial class Form1 : Form
{
private SqlConnection conn;
private SqlCommand command;
private SqlDataReader reader;
string sql = "";
string connectionString = "";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
BtnDisconnect.Enabled = false;
cmbDatabases.Enabled = false;
BtnBackup.Enabled = false;
BtnRestore.Enabled = false;
}
private void BtnDBFileBrowse_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Backup Files(*.bak)|*.bak|All Files(*.*)|*.*";
dlg.FilterIndex = 0;
if (dlg.ShowDialog() == DialogResult.OK)
{
txtRestoreFileLoc.Text = dlg.FileName;
}
}
private void BtnRestore_Click(object sender, EventArgs e)
{
try
{
if (cmbDatabases.Text.CompareTo("") == 0)
{
MessageBox.Show("Please select a Database.");
return;
}
conn = new SqlConnection(connectionString);
conn.Open();
sql = "Alter Database "+cmbDatabases.Text+" Set SINGLE_USER WITH ROLLBACK IMMEDIATE;";
sql += "Restore Database " + cmbDatabases.Text + " FROM Disk = '" + txtRestoreFileLoc.Text + "' WITH REPLACE;";
command = new SqlCommand(sql, conn);
command.ExecuteNonQuery();
conn.Close();
conn.Dispose();
MessageBox.Show("Successfully Restore Database");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}