2016-05-06 15 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")); 

私はこのコードを使用してデータベースバックアップを作成しています。うまくいきましたが、このコードは以前のファイルを新しいファイルに置き換えています。それを変更しないでください。エンティティフレームワーク6を使用したSQLデータベースバックアップ

+0

あなたの質問は何ですか? – Nino

+0

dbバックアップを同じ名前で上書きしていますか? –

+0

はい、上書きします。毎回新しいものを保存したい –

答えて

1

あなたはこのような何か試すことができます。

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)); 

このようにして、バックアップ名「MajesticDB」には、そのたびに、あなたのバックアップ手順を呼び出し、日付と時刻の追加され、データベースが別の名前でバックアップされます。

2

このようにしてください。

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

この行は間違っています。 'int path = _dbContext.Database.ExecuteSqlCommand(System.Data.Entity.TransactionalBehavior.DoNotEnsureTransaction、string.Format(sqlCommand、dbBackUp、" MajesticDB "));' – Draken

+0

あなたは 'dbBackUp' 「MajesticDB」ではなく、データベースバックアップの名前を変更していないので、 – Draken

+1

@Draken編集が完了しました。気づいて間違いを入力してください。遅く返事と編集を申し訳ありません。 –

関連する問題