Foxtable(狐表)用户栏目专家坐堂 → sql BACKUP DATABASE可以备份与RESTORE DATABASE 恢复本地sql数据库文件,那么是否可以代码备份与恢复远程服务器数据库文件到本地sql数据库呢?


  共有3896人关注过本帖树形打印复制链接

主题:sql BACKUP DATABASE可以备份与RESTORE DATABASE 恢复本地sql数据库文件,那么是否可以代码备份与恢复远程服务器数据库文件到本地sql数据库呢?

帅哥哟,离线,有人找我吗?
cnsjroom
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
sql BACKUP DATABASE可以备份与RESTORE DATABASE 恢复本地sql数据库文件,那么是否可以代码备份与恢复远程服务器数据库文件到本地sql数据库呢?  发帖心情 Post By:2021/5/16 0:42:00 [只看该作者]

sql  BACKUP DATABASE可以备份与RESTORE DATABASE 恢复本地sql数据库文件,那么是否可以代码备份与恢复远程服务器数据库文件到本地sql数据库呢?

备份本地SQL数据库数据:
Dim mc As String = "党建"
Dim bf As String = "D:\bak\"& mc & format(Date.now,"yyyyMMddHHmmss") & ".bak"
Dim Result As DialogResult
Result = MessageBox.Show("是否本机上的数据库?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    Dim cmd As New SQL Command
    cmd.Connection Name = "党建"
    cmd.CommandText = "use master;BACKUP DATABASE " & mc & "  TO DISK = '" & bf & "'  With FORMAT,CHECKSUM;"
    cmd.ExecuteNonQuery()
MessageBox.Show("备份完毕!")
End If

从本地备份文件恢复SQL数据库数据:
Dim dlg As New openFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "备份文件|*.bak" '设置筛选器
Dim mc As String = "党建"
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim cmd As New SQL Command
    cmd.Connection Name = "党建"
    cmd.Comma ndText = "use master;RESTORE DATABASE " & mc & "  FROM DISK= '" & dlg.FileName & "' "
    cmd.ExecuteNonQuery()
    MessageBox.Show("恢复完毕!")
End If


[此贴子已经被作者于2021/5/16 0:42:42编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cnsjroom
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(cnsjroom)sql BACKUP DATABASE可以备份与RE...  发帖心情 Post By:2021/5/16 13:55:00 [只看该作者]

要远程数据库可以备份到本地。 
本地数据库也可以备份到远程。

以下内容为百度而来   怎么变通到狐表中实现呢?




-- 创建网络映射(Y是盘符;IP地址后面要带共享文件夹的名称;password是密码,双引号引起;account是远程电脑的登录名)
exec master..xp_cmdshell 'net use Y: \\192.168.0.69\sqlbackup "password" /user:192.168.0.69\account'

-- 按日期时间做文件名(注意路径中的文件夹,需要先建立好)
declare @filename varchar(200)
select @filename = 'Y:\DB\' + replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ','-'),':','') + '.bak'

-- 执行备份(DB是要备份的数据库名称)
backup database [DB] to disk = @filename 

-- 删除网络映射(Y是盘符,同上)
exec master..xp_cmdshell 'net use Y: /delete'

-- ABEL.CNBLOGS.COM
-- 2013-07-14

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107146 积分:544973 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/16 20:37:00 [只看该作者]

这也仅适用于局域网,也就是备份电脑和数据库在同一个局域网。其实就是直接访问本地服务器的共享目录而已

照抄它的sql,然后改自己的数据库名称和路径试试。

 回到顶部
帅哥哟,离线,有人找我吗?
liyanfeng
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:43 积分:487 威望:0 精华:0 注册:2013/9/27 9:06:00
  发帖心情 Post By:2023/2/20 17:11:00 [只看该作者]

use master;BACKUP DATABASE " & mc & "  TO DISK = '" & bf & "'  With FORMAT,CHECKSUM;
兄弟,这种代码在SQL中可以运行。为什么在代码输入(或按钮命令中)咋提示错误?

 回到顶部