2016-05-06 11 views
0
string dbname = _dbContext.Database.Connection.Database; 

const string sqlCommand = @"BACKUP DATABASE [{0}] TO DISK = N'{1}' WITH NOFORMAT, 
    NOINIT, NAME = N'MajesticDb-Ali-Full Database Backup', 
    SKIP, NOREWIND, NOUNLOAD, STATS = 10"; 

int path = _dbContext.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior 
    .DoNotEnsureTransaction, 
    string.Format(sqlCommand, dbname, "MajesticDB")); 

Ich verwende diesen Code, um eine Datenbanksicherung zu erstellen. Es funktioniert gut, aber dieser Code ersetzt die vorherige Datei durch die neue. Wie ändere ich es, so ist es nicht?SQL-Datenbanksicherung mit Entity-Framework 6

+0

was genau ist Ihre Frage? – Nino

+0

Überschreiben Sie db backup mit dem gleichen Namen? –

+0

Ja, es ist überschrieben. Ich möchte jedes Mal ein neues speichern –

Antwort

1

Sie können so etwas wie dies versuchen:

string backupname= "MajesticDB" + DateTime.Now.ToString("yyyyMMddHHmm"); 
const string sqlCommand = @"BACKUP DATABASE [{0}] TO DISK = N'{1}' WITH NOFORMAT, NOINIT, NAME = N'MajesticDb-Ali-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"; 
     int path= _dbContext.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, string.Format(sqlCommand, dbname, backupname)); 

auf diese Weise, um Backup-Namen „MajesticDB“ wird Datum und Uhrzeit angehängt, so dass jedes Mal, wenn Sie Ihre Backup-Prozedur aufrufen, wird Datenbank mit anderen Namen gesichert werden .

2

Versuchen Sie es so.

string dbname = _dbContext.Database.Connection.Database; 
string dbBackUp= "MajesticDB" + DateTime.Now.ToString("yyyyMMddHHmm"); 
const string sqlCommand = @"BACKUP DATABASE [{0}] TO DISK = N'{1}' WITH NOFORMAT, NOINIT, NAME = N'MajesticDb-Ali-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10"; 
int path= _dbContext.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, string.Format(sqlCommand, dbname , dbBackUp)); 
+0

Diese Zeile ist falsch 'int path = _dbContext.Database.ExecuteSqlCommand (System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction, string.Format (sqlCommand, dbbackup "MajesticDB"));' – Draken

+0

Ich glaube, Sie 'dbBackUp' setzen gemeint und nicht '" MajesticDB "', da Sie Ihre Datenbanksicherung im Moment nicht umbenennen – Draken

+1

@Draken Edit erledigt. Tippfehler danke fürs merken. Entschuldigung für die späte Antwort und bearbeiten. –

Verwandte Themen