解决方案 »

  1.   

    我有个类似的--定义备份时间,精确到秒
    DECLARE @date NVARCHAR(64)
    SELECT  @date = SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 1, 4) + '_'
            + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 6, 2) + '_'
            + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 9, 2) + '_'
            + CONVERT(CHAR(2), DATEPART(hh, GETDATE()))
            + CONVERT(CHAR(2), DATEPART(mi, GETDATE()))
            + CONVERT(CHAR(2), DATEPART(ss, GETDATE()))
    --定义要备份的数据库名
    DECLARE @db NVARCHAR(20)
    SET @db = '' + '数据库名' + ''
    --定义备份文件的全名
    DECLARE @bakname NVARCHAR(128)
    SELECT  @bakname = @db + '_' + @date
    --定义备份存放路径
    DECLARE @disk NVARCHAR(256)
    SELECT  @disk = N'DataBak\' + @bakname + '.bak'
    --定义备份描述
    DECLARE @name NVARCHAR(128)
    SELECT  @name = @db + '-完整 数据库 备份'
    --定义错误信息
    DECLARE @error NVARCHAR(128)
    SELECT  @error = '验证失败。找不到数据库“' + @db + '”的备份信息。'BACKUP DATABASE @db TO  DISK = @disk WITH  COPY_ONLY, NOFORMAT, NOINIT,  
    NAME =@name, SKIP, NOREWIND, NOUNLOAD,  STATS = 10, CHECKSUM ;
    DECLARE @backupSetId AS INT
    SELECT  @backupSetId = position
    FROM    msdb..backupset
    WHERE   database_name = @db
            AND backup_set_id = ( SELECT    MAX(backup_set_id)
                                  FROM      msdb..backupset
                                  WHERE     database_name = @db
                                )
    IF @backupSetId IS NULL 
        BEGIN
            RAISERROR(@error, 16, 1)
        END
    RESTORE VERIFYONLY FROM  DISK = @disk WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
    GO
      

  2.   

    完整备份,你替换那个@dbname的值就好了
    --定义备份时间,精确到秒
    DECLARE @date NVARCHAR(64)
    SELECT  @date = SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 1, 4) + '_'
            + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 6, 2) + '_'
            + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 9, 2) + '_'
            + CONVERT(CHAR(2), DATEPART(hh, GETDATE()))
            + CONVERT(CHAR(2), DATEPART(mi, GETDATE()))
            + CONVERT(CHAR(2), DATEPART(ss, GETDATE()))
    --定义要备份的数据库名
    DECLARE @dbname NVARCHAR(20)
    SET @dbname='AdventureWorks2012'  --这里是库名
    DECLARE @db NVARCHAR(20)
    SET @db = '' + @dbname + ''
    --定义备份文件的全名
    DECLARE @bakname NVARCHAR(128)
    SELECT  @bakname = @db + '_' + @date
    --定义备份存放路径
    DECLARE @disk NVARCHAR(256)
    SELECT  @disk = N'D:\BACKUP\' + @bakname + '.bak'
    --定义备份描述
    DECLARE @name NVARCHAR(128)
    SELECT  @name = @db + '-完整 数据库 备份'
    --定义错误信息
    DECLARE @error NVARCHAR(128)
    SELECT  @error = '验证失败。找不到数据库“' + @db + '”的备份信息。'BACKUP DATABASE @db TO  DISK = @disk WITH   NOFORMAT, NOINIT,  
    NAME =@name, SKIP, NOREWIND, NOUNLOAD,  STATS = 10, CHECKSUM ;
    DECLARE @backupSetId AS INT
    SELECT  @backupSetId = position
    FROM    msdb..backupset
    WHERE   database_name = @db
            AND backup_set_id = ( SELECT    MAX(backup_set_id)
                                  FROM      msdb..backupset
                                  WHERE     database_name = @db
                                )
    IF @backupSetId IS NULL 
        BEGIN
            RAISERROR(@error, 16, 1)
        END
    RESTORE VERIFYONLY FROM  DISK = @disk WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
    GO
    差异备份:--定义备份时间,精确到秒
    DECLARE @date NVARCHAR(64)
    SELECT  @date = SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 1, 4) + '_'
            + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 6, 2) + '_'
            + SUBSTRING(CONVERT(VARCHAR(20), GETDATE(), 121), 9, 2) + '_'
            + CONVERT(CHAR(2), DATEPART(hh, GETDATE()))
            + CONVERT(CHAR(2), DATEPART(mi, GETDATE()))
            + CONVERT(CHAR(2), DATEPART(ss, GETDATE()))
    --定义要备份的数据库名
    DECLARE @dbname NVARCHAR(20)
    SET @dbname='AdventureWorks2012'  --这里是库名
    DECLARE @db NVARCHAR(20)
    SET @db = '' + @dbname + ''
    --定义备份文件的全名
    DECLARE @bakname NVARCHAR(128)
    SELECT  @bakname = @db + '_' + @date
    --定义备份存放路径
    DECLARE @disk NVARCHAR(256)
    SELECT  @disk = N'D:\BACKUP\' + @bakname + '.bak'
    --定义备份描述
    DECLARE @name NVARCHAR(128)
    SELECT  @name = @db + '-差异 数据库 备份'
    --定义错误信息
    DECLARE @error NVARCHAR(128)
    SELECT  @error = '验证失败。找不到数据库“' + @db + '”的备份信息。'BACKUP DATABASE @db TO  DISK = @disk WITH DIFFERENTIAL,  NOFORMAT, NOINIT,  
    NAME =@name, SKIP, NOREWIND, NOUNLOAD,  STATS = 10, CHECKSUM ;
    DECLARE @backupSetId AS INT
    SELECT  @backupSetId = position
    FROM    msdb..backupset
    WHERE   database_name = @db
            AND backup_set_id = ( SELECT    MAX(backup_set_id)
                                  FROM      msdb..backupset
                                  WHERE     database_name = @db
                                )
    IF @backupSetId IS NULL 
        BEGIN
            RAISERROR(@error, 16, 1)
        END
    RESTORE VERIFYONLY FROM  DISK = @disk WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
    GO但是我还是建议你用维护计划
      

  3.   

    也没见出什么问题 ,就是不能执行哦。
    就把@dbname值改为数据库名就好了是吧。其他不用修改吧。
      

  4.   

    使得,盘符你自己根据需要改吧,我已经写死D:\Backup了