动态备份SQL-SERVER数据库——SQLDMO

C# WinForm双模式SQL Server备份恢复工具(兼容SQLDMO与原生T-SQL) 一款开箱即用的SQL Server本地数据库维护小工具,用C# WinForm实现,支持两种独立备份恢复路径:一种通过SQLDMO组件调用底层接口操作,另一种完全脱离组件依赖,直接拼接并执行标准T-SQL语句(BACKUP DATABASE / RESTORE DATABASE)。项目基于VS2008构建,含完整解决方案文件(.sln)、可编译源码、清晰注释和Demo说明文档。界面提供数据库实例选择、目标库筛选、备份文件路径设置、执行过程日志实时输出等实用功能,不依赖任何第三方控件,编译后即可在Window 阅读详情

上周要写一个SQL-SERVER数据库备份还原的程序,很没有思路,只是记得上学的时候用过SQL语句来完成数据库的备份还原,其余的方式还没有尝试过。经过资料查找终于找到了解决方案,效果还不错,于是写下来一起分享。

大家最常见的是使用sql命令来进行数据库备份,

最常用的sql语句如下:

backup  [dbname]   to   disk=[路径+文件名]

restore  [dbname]   from   disk=[路径+文件名]

 

另外可以使用SQLDMO来实现数据库备份的功能

SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装 Microsoft SQL Server 2000 数据库中的对象。SQL-DMO 允许用支持自动化或 COM 的语言编写应用程序,以管理 SQL Server 安装的所有部分。SQL-DMO 是 SQL Server 2000 中的 SQL Server 企业管理器所使用的应用程序接口 (API);因此使用 SQL-DMO 的应用程序可以执行 SQL Server 企业管理器执行的所有功能。

在ASP.NET2005中要使用SQLDMO.DLL,首先要注册这个组件。注册SQLDMO.DLL组件的步骤:

1.“项目”——>“添加引用”——>“COM”——>“SQLDMO.DLL”这样就可以注册SQLDMO.DLL组件。

2.把在C:/Program Files/Microsoft SQL Server/80/Tools/Binn目录下的动态链接库SQLDMO.DLL文件。

3. 把DLL文件持拷贝到C:/WINDOWS/system32目录下

4. 在C:/WINDOWS/system32目录下建立一个新文件夹:resources,在里面再建一个新文件夹2052,然后把RLL文件拷贝到2052中.即放在C:/WINDOWS/system32/resources/2052目录中

5.注册:在开始>>运行>>(输入)Regsvr32 C:/Program Files/Microsoft SQL Server/80/Tools/Binn/sqldmo.dll 回车。

 

注册过SQLDMO.DLL组件后,在C#中使用这个组件来进行开发的方式有点不同。

在C#的Web程序中使用这个组件,要在“解决资源管理器”中添加上SQLDMO.DLL组件的引用。然后在项目的命名空间中添加“using SQLDMO;”命名空间的引用,完成以上操作就可以在Web项目中使用这个组件了。

具体步骤:选中“解决资源管理器”的项目,右键,“添加引用”,然后在COM选项中选择SQLDMO.DLL组件进行添加。

在Windows项目中就不需要这么麻烦,只要完成SQLDMO.DLL组件的步骤的注册步骤,直接在Windows程序中可以添加此引用“using SQLDMO;”,就可以直接使用这个组件。

下面是用C#语言写的备份和恢复Microsoft SQL Server数据库的实现方式:

(提醒:首先要注册SQLDMO.DLL组件。在WEB程序中使用SQLDMO.DLL组件,要添加SQLDMO.DLL的引用;在Windows项目中使用SQLDMO.DLL组件,注册后直接添加using SQLDMO;)

     ///<summary>

     /// 数据库备份

/// 参数信息要备份的数据库的名称Backup .Database = "Northwind";

/// 另外一个是存放备份文件的路径和文件名称Backup .Files = @"c:/databak.bak";

     ///</summary>

    private   void   Button1_Click(object   sender,   System.EventArgs   e)  

      {

           SQLDMO.Backup Backup  = new SQLDMO.BackupClass();

           SQLDMO.SQLServer SQLServer = new SQLDMO.SQLServerClass();

         try

          {

               SQLServer.LoginSecure = false;

               SQLServer.Connect("IP", "USERNAME", "PWD");

               Backup .Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMBackup _Database;

               Backup .Database = "Northwind";//要备份的数据库的名称,例如Northwind

               Backup .Files = @"c:/databak.bak";//存放路径,和备份文件的名称

               Backup .BackupSetName = "Northwind";

               Backup .BackupSetDescription = "数据库备份";

               Backup .Initialize = true;

               Backup .SQLBackup(SQLServer);

          }

         Catch(Exception ex)

          {

              Throw ex;

          }

          finally

          {

               SQLServer.DisConnect();

          }

      }

     ///<summary>

     /// 数据库恢复

/// 参数信息要恢复的数据库的名称Restore .Database = "Northwind_Res";

/// 另外一个是存放数据库备份文件的路径和文件名称

/// Backup .Files = @"c:/databak.bak";用来恢复数据库

     ///</summary>

    private   void   Button2_Click(object   sender,   System.EventArgs   e)

      {

           SQLDMO.Restore Restore  = new SQLDMO.RestoreClass();

           SQLDMO.SQLServer SQLServer = new SQLDMO.SQLServerClass();

         try

          {

               SQLServer.LoginSecure = false;

               SQLServer.Connect("IP", "USERNAME", "PWD");

               Restore .Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMRestore _Database;

               Restore .Database = "Northwind_Res";

               Restore .Files = @"C:/ databak.bak";

               Restore .FileNumber = 1;

               Restore .ReplaceDatabase = true;

               Restore .SQLRestore(SQLServer);

          }

         catch(Exception ex)

          {

              Throw ex;

          }

          finally

          {

               SQLServer.DisConnect();

          }

      }

}

其实这种方式是调用SQL-SERVER数据库自带的数据备份功能,这个功能是使用上面说过是两个sql语句,只不过是形成了存储过程的形式。在SQL-SERVER系统中有这两个SQL命令生成的存储过程,如下。

backup  [dbname]   to   disk=[路径+文件名]

restore  [dbname]   from   disk=[路径+文件名]
 

SQL数据库批量备份、恢复 实现SQL数据库批量备份和恢复,不执行压缩操作,备份速度快,占用较大空间!! 立即下载

相关推荐

uniapp自定义tabbar闪屏?3步搞定原生tabbar隐藏+自定义占位(附完整代码)

本文针对UniApp开发中自定义TabBar切换页面闪烁的痛点,提供了一套根治方案。通过隐藏原生TabBar并利用自定义组件进行视觉占位,巧妙结合原生切换的无闪烁优势与自定义设计的灵活性。文章详细解析了闪屏根源,并附上完整的page.json配置与代码实现,帮助开发者彻底解决此问题,提升小程序应用质感。

postgres8guard的博客 1530

数据库备份/恢复方案

  利用SQL语言,实现数据库的备份/恢复的功能体现了SQL Server中的四个知识点:1.   获取SQL Server服务器上的默认目录2.   备份SQL语句的使用3.   恢复SQL语句的使用,同时考虑了强制恢复时关闭其他用户进程的处理4.   作业创建SQL语句的使用 /*1.--得到数据库的文件目录  @dbname 指定要取得目录的数据库名   如果指定

欢迎您步入怪豆世界--(UglyBean) 天行键,君子以自强不息;地势坤,君子以厚德载物! 1343

康耐视 VisionPro CogImageFileTool(将获得的图像保存至文件或从文件中获取图像)工具

VisionPro CogImageFileTool(将获得的图像保存至文件或从文件中获取图像)工具

zhihuishuxia__的博客 2064

SQL Server 数据库之备份和恢复数据库

备份和恢复数据库1. 备份数据库1.1 新建备份设备1.2 用 SQL 命令备份数据库 1. 备份数据库 备份就是对数据库和数据对象进行复制i,便于在数据库遭道破坏时能够及时修复,这是数据库管理员的重要工作; 1.1 新建备份设备 备份设备是用来备份数据库、事物日志等文件的存储介质,在备份数据之前要指定或创建备份设备; 用 SSMS 创建备份设备的操作步骤如下所示: 服务器对象 → 右击 备份设备 →新建备份设备 → 打开备份设备对话框; 在设备名称文本框输入备份设备的名称(如 srs),单击文件后的三点

程序员小白的博客 1万+

量子计算入门指南:密度算符的核心概念与应用解析

本文深入解析了量子计算中密度算符的核心概念与应用。作为描述量子系统“状态的状态”的关键数学工具,密度算符能有效处理混合态与子系统描述,是理解量子噪声、量子纠错和开放系统演化的基石。文章通过对比纯态与混合态,阐释了密度矩阵的数学定义与物理意义,并结合代码示例演示了其在实际量子计算问题中的强大威力。

day7的博客 469

如何在STM32上5分钟搞定nanopb协议传输?附完整代码示例

本文提供了在STM32微控制器上快速集成nanopb协议传输的实战指南。通过详细的步骤,从.proto文件定义、代码生成到STM32CubeIDE项目移植,帮助开发者利用nanopb这一轻量级Protocol Buffers C语言实现,在5分钟内构建高效、跨平台的嵌入式设备通信框架,并附有完整的代码示例。

jwt8token的博客 839

mysql数据库自动备份

服务器中数据库的数据是最重要的东西,如果因为某些情况导致数据库数据错误,数据错乱或数据库崩溃,这时一定要及时的修复,但如果数据丢失或数据没法用了,这时就要回滚数据了,而这时就需要我们经常的备份数据库的数据

lt的博客 5480

UG NX二次开发基础篇-外部模式与DLL内部模式(二 DLL内部模式)

通常情况下,我们希望我们的外挂,在UG启动的时候,就自动加载我们的外挂,并以菜单和工具条的方式,显示在UG上面。当然,这也是市面上所有外挂的操作,因为您不可能要求你的用户,以手工加载的方式,去调用你的外挂吧。在上一篇中,有粉丝留言说,启动 bat 文件,启动EXE外挂,会提示无法找到DLL的错误,这是因为UG的环境变量设置有问题,这里,我们把BAT文件作一个修改,直接改为实际目录。EXE外部模式,还有很多部分需要添加的,如参数的传递、输出消息的显示、UG操作的消息显示,等等。Dll执行结束后,会调用。

u014657217的博客 1654

在SQL Server 中使用SQLDMO

 曾几何时,伙伴们为数据库的升级伤透了脑筋.往往程序的升级赶不上数据库的升级(版本控制的好,这也许不是什么问题,但对于很大一部分中国公司来说这是无法避免的).而有些n久以前的数据库要使用新程序的时候,数据库的升级简直就是无从下手.所以对比数据库升级的紧要性就逐渐的凸现出来.对于表和字段的升级按道理来说是不难的,通过sysobjects与syscolumns的比较很容易的可以找到不同之处,然后增

《优快云社区电子杂志——MS-SQL Server杂志》官方blog 2830

RTK_ROS_导航(1): GNSS里程计

1. RTK 配置 4G CORS + 4G 网络 + 户外有信号,不能实现RTK,就恢复出厂设置 输出信息包含(一般需要三个同时打开): GAPPA:包含位置信息 GPVTG:包含速度信息 GPHDT:包含定向的朝向信息 2. ROS驱动 驱动安装sudo apt install ros-noetic-nmea-navsat-driver 运行,需要修改该功能包的启动端口,会自动解析上面的3个RTK语句信息roslaunch nmea_navsat_driver nmea_serial_d

旋风小短腿 4265

Multica 自托管部署与使用入门:从上线到让 AI Agent 真正干活

Multica是一个将AI Agent作为团队成员的任务协作平台,支持自托管部署。本文介绍了完整的单机部署流程: 核心架构包括前端界面、后端服务、PostgreSQL数据库和Runtime执行机器 推荐使用Docker Compose部署,需配置数据持久化目录 提供详细的docker-compose.yml和.env配置文件说明 重点注意事项:数据库密码和JWT密钥必须修改,生产环境配置必须设为production 需正确配置前端访问地址和WebSocket连接 部署完成后,用户可创建AI Agent并将其

q742971636的博客 1705

使用SQL SERVER备份命令备份数据库

SQL SERVER数据库备份命令:完整备份(包括数据data和日志log):Backup Database *database_name*   To disk='*X:\folder\databse_name_backupname.bak*'12注:前提是X:\folder存在成功:注 : 此命令无法将数据库备份到网络地址上使用该命令:Backup Database *database_n...

milijiangjun的博客 1万+

2026年高教社杯数学建模国赛A题解题思路:从物理方程推导到MATLAB高效求解的全流程实战指南

□所有代码能够从头运行到尾,不报错(清除workspace重新跑一遍)□论文中的每个图号、表号、公式编号与正文引用一致□附录中附上核心代码(注意:不是全部代码,而是关键求解器和后处理部分)□支撑材料压缩包包含完整代码、数据文件、README说明□摘要字数严格控制在1000字以内,突出创新点和核心结果□。

YOLO 110

动态备份SQL Server数据库:SQLDMO

 来源:itpub大家最常见的是使用sql命令来进行数据库备份, 最常用的sql语句如下:   backup [dbname] to disk=[路径+文件名]   restore [dbname] from disk=[路径+文件名]   另外可以使用SQLDMO来实现数据库备份的功能   SQLDMO(SQL Distributed Management Objects,SQL分布式管理对

Allen的博客 1080

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

动态备份SQL-SERVER数据库

上周要写一个SQL-SERVER数据库备份还原的程序,很没有思路,只是记得上学的时候用过SQL语句来完成数据库的备份还原,其余的方式还没有尝试过。经过资料查找终于找到了解决方案,效果还不错,于是写下来一起分享。 大家最常见的是使用sql命令来进行数据库备份, 最常用的sql语句如下: backup [dbname] to disk=[路径+文件名] restore ...

339

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库

肚子饿得没力气干活了,就在系统里面到处转,看看那些系统和应用程序的DLL动态链接库,偶然看到了这么一个文件:SQLDMO.DLL 。还不知道这个文件是干嘛用的,到网上一查,哎呀,这是一个不大不小的发现!SQLDMO是SQL分布式管理对象,它封装了Microsoft SQL Server数据库中的对象,是企业管理器所使用的应用程序接口,所以它可以执行很多功能,其中

gxj022的专栏 647

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

在C#中运用SQLDMO备份和恢复SQL Server数据库

1.注册SQLDMO.DLL组件 DMO由一个动态链接库SQLDMO.DLL文件(在C:\Program Files\Microsoft SQL Server\80\Tools\Binn目录下)和一个语言支持包SQLDMO.RLL文件(在C:\Program Files\Microsoft SQL Server\80\COM\Resources\2052),在操作系统里注...

weixin_33872660的博客 146
上一篇: 利用T-SQL语句,实现数据库的备份与还原的功能
下一篇: c#实现数据库的备份和恢复
vainnetwork
博客等级 码龄20年 17粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值