zoukankan      html  css  js  c++  java
  • [转]Asp.Net 备份和恢复SQL SERVER 数据库

     1我们通常备份数据库时,需要登录数据库服务器去备份和恢复,这样很不方便,其实SQL SERVER自带的命令可能让我们很简单地实现远程通过Asp.Net备份和恢复数据库。 
     2BACKUP DATABASE '被备份的数据库名' TO DISK = '备份文件路径';
     3ALTER DATABASE '被恢复的数据库名' SET OFFLINE WITH ROOLBACK IMMEDIATE;
     4RESTORE DATABASE '被恢复的数据库名' FROM DISK = '备份文件路径';
     5ALTER DATABASE '被恢复的数据库名' SET ONLINE WITH ROOLBACK IMMEDIATE;
     6
     7   简单几条命令就可以完成数据库的备份和恢复,在Asp.Net中,可以像调用Sql语句一样调用这四条语句,轻轻松松实现SQL SERVER数据库的备份和恢复。
     8
     9   例子(以Northwind为例):
    10   1、备份Northwind数据库到C盘根目录下,以'Northwind.bak'为名:
    11        BACKUP DATABASE 'Northwind' TO DISK = 'C:\Northwind.bak';
    12
    13   2、恢复Northwind数据库,C盘根目录下的'Northwind.bak'备份文件:
    14       a、将数据库置于离线状态
    15           ALTER DATABASE 'Northwind' SET OFFLINE WITH ROOLBACK IMMEDIATE;
    16       b、恢复Northwind数据库
    17           RESTORE DATABASE 'Northwind' FROM DISK = 'C:\Northwind.bak';
    18       c、将数据库置于在线状态
    19           ALTER DATABASE 'Northwind' SET ONLINE WITH ROOLBACK IMMEDIATE;
    20
    21使用存储过程:
    22create proc BackupDB
    23@dbname sysname='',  --要备份的数据库名称,不指定则备份当前数据库
    24@bkpath nvarchar(260)=''--备份文件的存放目录,不指定则使用SQL默认的备份目录
    25@bkfname nvarchar(260)=''--备份文件名,文件名中可以用\DBNAME\代表数据库名,\DATE\代表日期,\TIME\代表时间
    26@bktype nvarchar(10)='DB'--备份类型:'DB'备份数据库,'DF' 差异备份,'LOG' 日志备份
    27@appendfile bit=1  --追加/覆盖备份文件
    28as
    29 declare @sql varchar(8000)
    30 if isnull(@dbname,'')='' set @dbname=db_name()
    31 if isnull(@bkpath,'')='' set @bkpath=dbo.f_getdbpath(null)
    32 if isnull(@bkfname,'')='' set @bkfname='\DBNAME\_\DATE\_\TIME\.BAK'
    33 set @bkfname=replace(replace(replace(@bkfname,'\DBNAME\',@dbname)
    34  ,'\DATE\',convert(varchar,getdate(),112))
    35  ,'\TIME\',replace(convert(varchar,getdate(),108),':',''))
    36 set @sql='backup '+case @bktype when 'LOG' then 'log ' else 'database ' end +@dbname
    37  +' to disk='''+@bkpath+@bkfname
    38  +''' with '+case @bktype when 'DF' then 'DIFFERENTIAL,' else '' end
    39  +case @appendfile when 1 then 'NOINIT' else 'INIT' end
    40 print @sql
    41 exec(@sql)
    42
    43
    44GO
    45
    46
  • 相关阅读:
    来自1068
    耻辱的时间戳(笑哭)
    依然排序
    呵呵
    好吧,第二篇
    来自机房的第一篇博客
    Shader-水流效果
    unity中虚拟摇杆的实现
    (转载)Unity3d中的属性(Attributes)整理
    C#冒泡排序法及优化
  • 原文地址:https://www.cnblogs.com/suneryong/p/740243.html
Copyright © 2011-2022 走看看