調(diào)用sql語句實(shí)現(xiàn)SqlServer的備份和還原
來源:易賢網(wǎng) 閱讀:934 次 日期:2014-11-03 10:10:25
溫馨提示:易賢網(wǎng)小編為您整理了“調(diào)用sql語句實(shí)現(xiàn)SqlServer的備份和還原”,方便廣大網(wǎng)友查閱!

調(diào)用sql語句實(shí)現(xiàn)SqlServer的備份還原,包括完整備份和差異備份,因?yàn)閳?zhí)行備份還原需要一定的時(shí)間,因此需要設(shè)定 CommandTimeout參數(shù)。

/// <summary>

/// 備份數(shù)據(jù)庫 調(diào)用SQL語句

/// </summary>

/// <param name="strFileName">備份文件名</param>

/// <param name="BackUpType">0表示完整備份,為1表示差異備份</param>

/// <returns></returns>

public bool BackUPDB(string strFileName, int BackUpType)

{

//如果是差異備份,就是看一下文件是否存在,如果不存在,就不執(zhí)行

if (BackUpType == 1 && File.Exists(strFileName) == false)

{

return false;

}

bool result = false;

try

{

string[] strConnSqlArr = strConnSql.Split(';');

string DBName = strConnSqlArr[4].ToString()。Split('=')[1].ToString();//數(shù)據(jù)庫名稱

string backUp_full = string.Format("backup database {0} to disk = '{1}' ;", DBName, strFileName);

string backUp_Diff = string.Format("backup database {0} to disk='{1}' WITH DIFFERENTIAL ;", DBName, strFileName);

WKK.DBUtility.DbHelperSQL.ExecuteSql(BackUpType == 0 ? backUp_full : backUp_Diff, 600);

result = true;

}

catch (Exception ex)

{

Common.Log.WriteLog(string.Format("備份{0}數(shù)據(jù)庫失敗", BackUpType == 0 ? "完整" : "差異"), ex);

// System.Diagnostics.Debug.WriteLine(string.Format("備份{0}數(shù)據(jù)庫失敗", BackUpType == 0 ? "完整" : "差異"));

result = false;

}

finally

{

if (result == true)

{

string str_InfoContent = string.Format("備份{0}數(shù)據(jù)庫成功", BackUpType == 0 ? "完整" : "差異");

// System.Diagnostics.Debug.WriteLine(str_InfoContent);

}

}

return result;

}

/// <summary>

/// 還原數(shù)據(jù)庫 使用Sql語句

/// </summary>

/// <param name="strDbName">數(shù)據(jù)庫名</param>

/// <param name="strFileName">備份文件名</param>

public bool RestoreDB(string strDbName, string strFileName)

{

bool result = false;

try

{

string strConnSql = ConfigurationSettings.AppSettings["ConnectionString"].ToString();

string[] strConnSqlArr = strConnSql.Split(';');

string DBName = strConnSqlArr[4].ToString()。Split('=')[1].ToString();//數(shù)據(jù)庫名稱

#region 關(guān)閉所有訪問數(shù)據(jù)庫的進(jìn)程,否則會(huì)導(dǎo)致數(shù)據(jù)庫還原失敗 閆二永 17:39 2014/3/19

string cmdText = String.Format("EXEC sp_KillThread @dbname='{0}'", DBName);

WKK.DBUtility.DbHelperSQL.connectionString = strConnSql.Replace(DBName, "master");

WKK.DBUtility.DbHelperSQL.ExecuteSql(cmdText);

#endregion

string Restore = string.Format("RESTORE DATABASE {0} FROM DISK='{1}'WITH replace", DBName, strFileName);

WKK.DBUtility.DbHelperSQL.ExecuteSql(Restore, 600);

result = true;

}

catch (Exception ex)

{

MessageBox.Show("還原數(shù)據(jù)庫失敗rn" + ex.Message, "系統(tǒng)提示!", MessageBoxButtons.OK, MessageBoxIcon.Warning);

Common.Log.WriteLog(string.Format("還原數(shù)據(jù)庫失敗--{0}", DateTime.Now.ToString()), ex);

result = false;

}

finally

{

//恢復(fù)成功后需要重啟程序

if (result)

{

//

}

}

return result;

}

/// <summary>

/// 執(zhí)行一條SQL語句

/// </summary>

/// <param name="SQLStringList">sql語句</param>

/// <param name="SetTimeout"> 等待連接打開的時(shí)間(以秒為單位)。 默認(rèn)值為 15 秒。 </param>

/// <returns></returns>

public static int ExecuteSql(string SQLString, int setTimeOut)

{

using (SqlConnection connection = new SqlConnection(connectionString))

{

using (SqlCommand cmd = new SqlCommand(SQLString, connection))

{

try

{

connection.Open();

cmd.CommandTimeout = setTimeOut;

int rows = cmd.ExecuteNonQuery();

connection.Close();

return rows;

}

catch (System.Data.SqlClient.SqlException e)

{

connection.Close();

throw e;

}

}

}

}

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看數(shù)據(jù)庫
易賢網(wǎng)手機(jī)網(wǎng)站地址:調(diào)用sql語句實(shí)現(xiàn)SqlServer的備份和還原
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)