備份
- private void BackupDB(string dbName, string saveAt)
- {
- using (SqlConnection conn = new SqlConnection(CONN_STR)) {
- conn.Open();
- SqlCommand cmd = new SqlCommand(" BACKUP DATABASE @DBName TO DISK = @PATH WITH STATS = 5", conn);
- cmd.Parameters.AddWithValue("@DBName", dbName);
- cmd.Parameters.AddWithValue("@PATH", saveAt);
- cmd.CommandTimeout = 86400000;
- cmd.ExecuteNonQuery();
- }
- }
還原
- public void RestoreDB(string dbName, string loadBakFilePath)
- {
- using (SqlConnection conn = new SqlConnection(CONN_STR)) {
- SqlConnectionStringBuilder connStrBuilder = new SqlConnectionStringBuilder(CONN_STR);
- connStrBuilder.InitialCatalog = "master";
- conn.ConnectionString = connStrBuilder.ConnectionString;
- conn.Open();
- SqlCommand cmd = new SqlCommand();
- cmd.CommandText = "ALTER DATABASE " + dbName + " SET Single_User WITH Rollback Immediate; RESTORE DATABASE " +
- dbName + " FROM DISK = @PATH WITH REPLACE; ALTER DATABASE " + dbName + " SET Multi_User;";
- cmd.CommandTimeout = 86400000;
- cmd.Parameters.AddWithValue("@DBName", dbName);
- cmd.Parameters.AddWithValue("@PATH", loadBakFilePath);
- cmd.Connection = conn;
- cmd.ExecuteNonQuery();
- }
- }
ref:CaveDweller
沒有留言:
張貼留言