社区
C#
帖子详情
用C#怎么样实现备份数据库与恢复数据库功能呀?
yangkang0752
2004-05-06 12:20:12
用C#怎么样实现备份数据库与恢复数据库功能呀?
...全文
113
9
打赏
收藏
用C#怎么样实现备份数据库与恢复数据库功能呀?
用C#怎么样实现备份数据库与恢复数据库功能呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ppq886
2004-07-02
打赏
举报
回复
收藏
liqiang2003
2004-05-07
打赏
举报
回复
用存储过程:
1建立自动任务:
EXECUTE pr_AutoBackup "baktest","d:\Database",23,3
设置为每小时执行一次。
2.在Server – SQL Server – Configuration 中选中Auto Start Executive at Boot Time
3.在Master数据库建立存储过程
CREATE PROCEDURE pr_AutoBackup @db_to_bak varchar(20),
@file_path varchar(20),
@on_hour int,
@remain_day int
AS
DECLARE @this_day int,
@bak_count int,
@str_file_name varchar(30),
@str_del_device varchar(20),
@str_last_device varchar(20),
@last_day int,
@this_hour int,
@strSQL varchar(60)
SELECT @this_day = datepart(dayofyear,getdate())
SELECT @bak_count = count(name),@str_last_device = max(name),
@last_day = max(convert(int,substring(name,charindex("_",name)+1,3)))
FROM sysdevices
WHERE charindex("_",name)=datalength(@db_to_bak)+1
AND substring(name,1,datalength(@db_to_bak))=@db_to_bak
IF SUBSTRING(@file_path,datalength(@file_path),1)<>”\”
SELECT @file_path = @file_path + “\”
SELECT @this_hour = datepart(hour,getdate())
IF ((@this_hour = @on_hour)and(@this_day<>@last_day))or(@bak_count = 0)
BEGIN
SELECT @str_last_device = @db_to_bak+"_"+convert(varchar(3),@this_day)
SELECT @str_file_name = @file_path + @str_last_device + “.dat”
SELECT @strSQL =“DUMP TRANSACTION ” + @db_to_bak + “ WITH TRUNCATE_ONLY”
EXECUTE(@strSQL)
SELECT @strSQL =“sp_addumpdevice ‘DISK’,’”+@str_last_device + “’,’”+@str_file_name+”’”
EXECUTE(@strSQL)
SELECT @strSQL =“DUMP DATABASE “+ @db_to_bak + “ TO “ + @str_last_device
EXECUTE(@strSQL)
SELECT @str_del_device = @db_to_bak + ”_” + convert(varchar(4),@this_day - @remain_day)
SELECT @bak_count = count(name)
FROM sysdevices
WHERE name = @str_del_device
IF (@bak_count=1)
BEGIN
SELECT @strSQL =“sp_dropdevice “+ @str_del_device +”,DELFILE”
EXECUTE(@strSQL)
END
END
ELSE
BEGIN
SELECT @strSQL =“DUMP TRANSACTION “+ @db_to_bak + “ TO “ + @str_last_device
EXECUTE(@strSQL)
END
lg9706032921
2004-05-07
打赏
举报
回复
<HTML>
<HEAD>
<TITLE>SQL Server 数据库的备份与恢复</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<BODY>
<form method="post" name=myform>
选择操作:<INPUT TYPE="radio" NAME="act" id="act_backup" value="backup"><label for=act_backup>备份</label>
<INPUT TYPE="radio" NAME="act" id="act_restore" value="restore"><label for=act_restore>恢复</label>
<br>数据库名:<INPUT TYPE="text" NAME="databasename" value="<%=request("databasename")%>">
<br>文件路径:<INPUT TYPE="text" NAME="bak_file" value="c:\$1.bak">(备份或恢复的文件路径)<br>
<input type="submit" value="确定">
</form>
<%
dim sqlserver,sqlname,sqlpassword,sqlLoginTimeout,databasename,bak_file,act
sqlserver = "sa" 'sql服务器
sqlname = "sa" '用户名
sqlpassword = "123" '密码
sqlLoginTimeout = 15 '登陆超时
databasename = trim(request("databasename"))
bak_file = trim(request("bak_file"))
bak_file = replace(bak_file,"$1",databasename)
act = lcase(request("act"))
if databasename = "" then
response.write "input database name"
else
if act = "backup" then
Set srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Connect sqlserver,sqlname, sqlpassword
Set bak = Server.CreateObject("SQLDMO.Backup")
bak.Database=databasename
bak.Devices=Files
bak.Files=bak_file
bak.SQLBackup srv
if err.number>0 then
response.write err.number&"<font color=red><br>"
response.write err.description&"</font>"
end if
Response.write "<font color=green>备份成功!</font>"
elseif act = "restore" then
'恢复时要在没有使用数据库时进行!
Set srv=Server.CreateObject("SQLDMO.SQLServer")
srv.LoginTimeout = sqlLoginTimeout
srv.Connect sqlserver,sqlname, sqlpassword
Set rest=Server.CreateObject("SQLDMO.Restore")
rest.Action=0 ' full db restore
rest.Database=databasename
rest.Devices=Files
rest.Files=bak_file
rest.ReplaceDatabase=True 'Force restore over existing database
if err.number>0 then
response.write err.number&"<font color=red><br>"
response.write err.description&"</font>"
end if
rest.SQLRestore srv
Response.write "<font color=green>恢复成功!</font>"
else
Response.write "<font color=red>没有选择操作</font>"
end if
end if
%>
</BODY>
</HTML>
用的SQLSERVER 自己的功能,
yangkang0752
2004-05-07
打赏
举报
回复
能够用存储过程来做吗?请大家帮帮忙吧,我在做一个系统,正要实现这个功能啊
ChinaKable
2004-05-06
打赏
举报
回复
关注,UP!
dongyp511
2004-05-06
打赏
举报
回复
关注,UP!
jaxkxu
2004-05-06
打赏
举报
回复
些批处理之后C#中调用 *.bat
mastercy
2004-05-06
打赏
举报
回复
建议把数据导出到另外的文件
恢复时在导入即可
李洪喜
2004-05-06
打赏
举报
回复
这方面的东东挺多的,搜索一下吧。
C#
实现
SQL
数据库
备份
与
恢复
C#
实现
SQL
数据库
备份
与
恢复
.txt
C#
代码
实现
数据库
备份
和
恢复
用
C#
代码
实现
数据库
备份
和
恢复
,分模块
实现
。。。
C#
简单ADO.NET
数据库
教程
基于Visual Studio 2019环境下,主要讲解
C#
中ADO.net的操作,涉及:
数据库
连接测试、Connection类的语法和使用、Command类的语法和使用、DataReader类的语法和使用、
实现
数据库
的增、删、改、操作;
C#
实现
SQL
数据库
备份
与
恢复
.txt
C#
实现
SQL
数据库
备份
与
恢复
C#
实现
数据库
备份
与还原(两种方法)
用
C#
写的
实现
数据库
备份
与还原的工程(VS2008下可直接运行,低于08的版本可以拷贝代码
实现
,记得要在COM中添加SQLSMO引用,本例
数据库
为SuperMarket,请更改为你所需
备份
的
数据库
),个人特意将两种方法放在同一工程内,Form1是直接用SQL语句
实现
的,Form2是使用SQLSMO
实现
的,还有进度条控制,界面也挺漂亮的,因为为了个人存档。
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章