CREATE PROCEDURE kup_diff
(@dbname varchar(10))
AS
declare   @s  varchar(8000)
set @s='wm' 
+@dbname  +' to  disk='' E:\data\' +@dbname+'_'  +datename(weekday,getdate())  +'.DIF''  with   differential ,init'
exec(@s)
GOEXECUTE ng_backup_diff @dbname='wm'
1.执行用户: sa。在关键字 'to' 附近有语法错误。 [SQLSTATE 42000](错误 156).  步骤失败。2.为什么备份中设置调度为差异备份或重写现有媒体后,重新打开对话框就变为默认选项了?

解决方案 »

  1.   

    --参考一下
    /*******************差异备份作业*******************/
    --截断日志
    USE Master
    GO
    BACKUP LOG Demo  WITH NO_LOG
    GO
    --收缩日志文件
    USE Demo
    GO
    DBCC SHRINKFILE (N'Demo_log',0,TRUNCATEONLY)
    GO
    --差异备份,每天一次
    USE Master
    GO
    declare @str varchar(100)
    set @str='D:\DBtext\jgj\DBABak\DiffBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.diff'
    BACKUP DATABASE [Demo] TO DISK=@str
    WITH DIFFERENTIAL,RETAINDAYS=8,NOFORMAT,NOINIT,
    NAME=N'Demo差异备份',SKIP,NOREWIND,
    NOUNLOAD,STATS=10
    GO
      

  2.   

    数据库差异备份还原先错误:先前地还原操作未指定WITH NORECOVERY或WITH STANDBY
      

  3.   

    完全备份WITH NORECOVERY+差异备份WITH RECOVERY