在ASP.net中如何实现数据库的备份与还原

在ASP.net中如何实现数据库的备份与还原,第1张

简单的做法(执行Sql语句):

1、数据库备份

use masterbackup database @name to disk=@path

2、数据库还原:

use masterrestore database @name from disk=@path With Replace

注:

Sql参数:@name 为数据库名称,@path 为备份文件路径;

以上两条语句可以分别封装为两个方法可方便调用。

static string pathBak

/// <summary>

/// 备份SQL数据库

/// </summary>

/// <param name="databasename">要备份的数据源名称</param>

/// <param name="backuptodatabase">备份到的数据库文件名称及路径.bak</param>

/// <returns>返回生成的备份文件全路径名</returns>

public string BakSql(string databaseName, string bakPath)

{

try

{

//声明临时数据库名称

string bakName = string.Empty

if (bakPath.IndexOf(".bak") <0)

{

bakName = databaseName

bakName += DateTime.Now.Year.ToString()

bakName += DateTime.Now.Month.ToString()

bakName += DateTime.Now.Day.ToString()

bakName += DateTime.Now.Hour.ToString()

bakName += DateTime.Now.Minute.ToString()

bakName += DateTime.Now.Second.ToString()

bakName += ".bak"

if (bakPath.LastIndexOf('\\') != bakPath.Length)

bakPath += '\\'

}

FileInfo fi = new FileInfo(bakPath)

if (!Directory.Exists(fi.DirectoryName))

Directory.CreateDirectory(fi.DirectoryName)

bakPath = bakPath + bakName

pathBak = bakPath

bakPath = bakPath.Replace("\\", "/")

string sqlbak = string.Format("BACKUP DATABASE " + databaseName + " TO DISK = '{0}' WITH INIT", bakPath)

if (SqlHelper.ExecuteNonQuery(Common.objCom.GetConnectionString("DBMaster"), CommandType.Text, sqlbak) != 0)

return pathBak

else

return string.Empty

}

catch (Exception ex)

{

lbTip.Text = ex.Message

lbTip.ForeColor = Color.FromName("#FF8080")

return string.Empty

}

}

asp在线备份sql server数据库:

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

%>

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

%>

注:以上语句是把数据备份到磁盘的backup目录下,文件名为backuptext.dat。

2、ASP中能修改SQL数据库结构吗?

答:ALTER TABLE

名称

ALTER TABLE — 更改表属性

语法

ALTER TABLE table [ * ]

ADD [ COLUMN ] column type

ALTER TABLE table [ * ]

ALTER [ COLUMN ] column { SET DEFAULT value | DROP DEFAULT }

ALTER TABLE table [ * ]

RENAME [ COLUMN ] column TO newcolumn

ALTER TABLE table

RENAME TO newtable

ALTER TABLE table

ADD table constraint definition

Inputs

table

试图更改的现存表的名称.

column

现存或新的列名称.

type

新列的类型.

newcolumn

现存列的新名称.

newtable

表的新名称.

table constraint definition

表的新的约束定义.

New table constraint for the table

输出

ALTER

从被更名的列或表返回的信息.

ERROR

如果一个列或表不存在返回的信息.

描述

ALTER TABLE 变更一个现存表的定义.ADD COLUMN 形式用与 CREATE TABLE一样的语法向表中增加一个新列/字段。ALTER COLUMN 形式允许你从列/字段中设置或者删除缺省(值)。注意缺省(值)只对新插入的行有效。RENAME 子句可以在不影响相关表中任何数据的情况下更改一个表或者列/字段的名称。因此,表或列/字段在此命令执行后仍将是相同尺寸和类型。ADD table constraint definition 子句用与 CREATE TABLE一样的语法向表中增加一个新的约束。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/70429.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-01
下一篇2023-03-01

发表评论

登录后才能评论

评论列表(0条)

    保存