1、备份
<%
SQL="backup database 数据库名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server}Server=服务器名uid=sapwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "错误:"&err.Descripting
else
response.write "数据备份成功!"
end if
cnn.close
set cnn=nothing
%>
2、恢复
<%
SQL="Restore database 数据库名 from disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server}Server=服务器名uid=sapwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "错误:"&err.Descripting
else
response.write "数据恢复成功!"
end if
cnn.close
set cnn=nothing
%>
DMO才能解决你的问题:SQLDMO.Restore objRestore = new SQLDMO.RestoreClass()
SQLDMO.SQLServer objSQLServer = new SQLDMO.SQLServerClass()
objRestore.Action = 0
SQLDMO.RestoreSink_PercentCompleteEventHandler pceh = new SQLDMO.RestoreSink_PercentCompleteEventHandler(Step)
objRestore.PercentComplete += pceh
try
{
objSQLServer.Connect("ServerName","UId","Upassword")
SQLDMO.QueryResults qr = objSQLServer.EnumProcesses(-1)
int iColPIDNum = -1
int iColDbName = -1
//杀死其它的连接进程
for(int idj=1idj<=qr.Columnsidj++)
{
string strName = qr.get_ColumnName(idj)
if (strName.ToUpper().Trim() == "SPID")
{
iColPIDNum = idj
}
else if (strName.ToUpper().Trim() == "DBNAME")
{
iColDbName = idj
}
if (iColPIDNum != -1 &&iColDbName != -1)
break
}
for(int idx=1idx<=qr.Rowsidx++)
{
int lPID = qr.GetColumnLong(idx,iColPIDNum)
string strDBName = qr.GetColumnString(idx,iColDbName)
if (strDBName.ToUpper() == "CgRecord".ToUpper())
objSQLServer.KillProcess(lPID)
}
objRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database
objRestore.Database = "DatabaseName"
objRestore.Files = "备份文件全路径"
objRestore.FileNumber = 1
objRestore.ReplaceDatabase = true
objRestore.SQLRestore(objSQLServer)
}
catch(System.Exception ex)
{
MessageBox.Show("数据还原失败: " + ex.ToString())
}
finally
{
objSQLServer.DisConnect()
}
}
{string con_str = ConfigurationManager.ConnectionStrings["carsConnectionString3"].ToString()SqlConnection conn = new SqlConnection(con_str)
还原时,你打开的是cars的连接,怎么还原呀,应该打开master库才行。
cmdRT.CommandText = @"restore database cars from disk= '..\Backup\cars" + ".bak'" + "WITH FILE = 1, NOUNLOAD, REPLACE, STATS = 10"
这个语句,你在企业管理器或查询分析器中运行过了吗,数据库已经有了,必须强制还原才行,参照一下,是vb的,呵呵
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)