CREATE PROCEDURE [dbo].[backstore] AS 
declare @strback varchar(2000) 
declare @bakstr varchar(128) 
set @bakstr=convert(varchar,getdate(),12)+convert(varchar(10),datename(hh,getdate()))+convert(varchar(10),datename(mm,getdate()))+convert(varchar(10),datename(ss,getdate())) 
set @strback='BACKUP DATABASE [数据库名] TO  DISK = N''E:\'+@bakstr+'数据库名''  WITH  NOINIT ,  NOUNLOAD ,  NAME = N''数据库名 备份'',  NOSKIP ,  STATS = 10,  NOFORMAT' 
--select @strback 
exec (@strback) 
GO 
请教一下上面这段代码是什么含义?
它执行后的效果是什么?

解决方案 »

  1.   

    对数据库进行备份,执行后在你的E盘下有个bak的数据备份文件
      

  2.   

    但是,我把上面这段代码完全拷贝到查询分析器里执行,在E盘里没有发现任何bak文件呀?
      

  3.   

    用当前时间动态拼接备份文件名称,然后在E盘下生成相应备份文件
    名称是用日期时月秒拼接的,估计是写错了,mm改成mi的话就是时分秒了
      

  4.   


    我觉得这里还少一个参数那就是数据库名,改成以下的语句应该可以了CREATE PROCEDURE [dbo].[backstore] @databasename  varchar(50)
    AS 
    declare @strback varchar(2000)  
    declare @bakstr varchar(128) 
     set @bakstr=convert(varchar,getdate(),12)+convert(varchar(10),datename(hh,getdate()))+convert(varchar(10),datename(mm,getdate()))+convert(varchar(10),datename(ss,getdate()))  
     set @strback='BACKUP DATABASE '+@databasename+' TO  DISK = N''E:\'+@bakstr+@databasename+'.bak''  WITH  NOINIT ,  NOUNLOAD ,  NAME = N'''+@databasename+''',  NOSKIP ,  STATS = 10,  NOFORMAT'  
    --select @strback  
     exec (@strback)  
     GO  
      

  5.   


    CREATE PROCEDURE [dbo].[backstore] AS 
    declare @strback varchar(2000) 
    declare @bakstr varchar(128) 
    set   --如果备份时间是2013-1-11  13:13:07,那么下面的语句执行后@bakstr = 13011113017
    @bakstr=convert(varchar,getdate(),12)+convert(varchar(10),datename(hh,getdate()))+convert(varchar(10),datename(mm,getdate()))+convert(varchar(10),datename(ss,getdate())) --拼接备份命令 利用上面的参数作为路径一部分
    set @strback='BACKUP DATABASE [数据库名] TO  DISK = N''E:\'+@bakstr+'数据库名''  WITH  NOINIT ,  NOUNLOAD ,  NAME = N''数据库名 备份'',  NOSKIP ,  STATS = 10,  NOFORMAT' 
    --select @strback 
    exec (@strback) 
    GO 
      

  6.   

    1、脚本是备份数据库、
    2、备份文件将会在SQLServer所在的机器上生成。
    3、你要替换里面的[数据库名]
    4、你可以用SQLServer Management studio,做好备份的选择之后,点击上方的【脚本】,就可以拿那个来和这个对比一下了。