如何通过 C# 动态备份 Sql 数据库?
生活随笔
收集整理的這篇文章主要介紹了
如何通过 C# 动态备份 Sql 数据库?
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
咨詢區(qū)
kaiz.net
我想寫段代碼來備份我的 Sql Server 2008 數(shù)據(jù)庫,請問大家有什么好的方法嗎?
回答區(qū)
Stacked
你可以用代碼去執(zhí)行 ?BACKUP DATABASE ... TO DISK 命令,比如下面這樣,先配置下config。
<?xml?version="1.0"?encoding="utf-8"?> <configuration><connectionStrings><add?name="MyConnString"?connectionString="Data?Source=(local);Initial?Catalog=MyDB;?Integrated?Security=SSPI;"?Timeout=30"?/></connectionStrings><appSettings><add?key="BackupFolder"?value="C:/temp/"/></appSettings> </configuration>然后就可以編碼了。
//?read?connectionstring?from?config?file var?connectionString?=?ConfigurationManager.ConnectionStrings["MyConnString"].ConnectionString;?//?read?backup?folder?from?config?file?("C:/temp/") var?backupFolder?=?ConfigurationManager.AppSettings["BackupFolder"];var?sqlConStrBuilder?=?new?SqlConnectionStringBuilder(connectionString);//?set?backupfilename?(you?will?get?something?like:?"C:/temp/MyDatabase-2013-12-07.bak") var?backupFileName?=?String.Format("{0}{1}-{2}.bak",?backupFolder,?sqlConStrBuilder.InitialCatalog,?DateTime.Now.ToString("yyyy-MM-dd"));using?(var?connection?=?new?SqlConnection(sqlConStrBuilder.ConnectionString)) {var?query?=?String.Format("BACKUP?DATABASE?{0}?TO?DISK='{1}'",?sqlConStrBuilder.InitialCatalog,?backupFileName);using?(var?command?=?new?SqlCommand(query,?connection)){connection.Open();command.ExecuteNonQuery();} }Prashant Manjule
對于 SqlServer 的備份和恢復(fù),完全可以使用自帶的 SqlCmd 命令,接下來就是用 C# 和 SqlCmd 互動就行了。
備份
恢復(fù)
然后我們通過 ?Process 啟動 bat 腳本即可。
FileInfo?file?=?new?FileInfo("DB\\batfile.bat");Process?process?=?new?Process();process.StartInfo.FileName?=?file.FullName;process.StartInfo.Arguments?=?@"-X";process.StartInfo.WindowStyle?=?ProcessWindowStyle.Normal;process.StartInfo.UseShellExecute?=?false;?//Changed?Lineprocess.StartInfo.RedirectStandardOutput?=?true;??//Changed?Lineprocess.Start();string?output?=?process.StandardOutput.ReadToEnd();?//Changed?Lineprocess.WaitForExit();?//Moved?Line點(diǎn)評區(qū)
如果要備份DB,一般用數(shù)據(jù)庫的計(jì)劃任務(wù),如果一定要通過代碼實(shí)現(xiàn),我覺得用 SqlCmd 工具更適合。
總結(jié)
以上是生活随笔為你收集整理的如何通过 C# 动态备份 Sql 数据库?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开源虎墩同名电影《小虎墩大英雄》定档大年
- 下一篇: Linux下部署Kubernetes+K