微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每天固定备份db sqlserver

DECLARE @dbname varchar(255)

DECLARE @DATABASES_Fetch int

DECLARE DATABASES_CURSOR CURSOR FOR
    select
        DATABASE_NAME   = db_name(s_mf.database_id)
    from
        sys.master_files s_mf
    where
       -- ONLINE
        s_mf.state = 0 

       -- Only look at databases to which we have access
    and has_dbaccess(db_name(s_mf.database_id)) = 1 

        -- Not master,tempdb,model or msdb
    and db_name(s_mf.database_id) in (‘EIP-ZH‘)
    group by s_mf.database_id
    order by 1

OPEN DATABASES_CURSOR

FETCH NEXT FROM DATABASES_CURSOR INTO @dbname

WHILE @@FETCH_STATUS = 0
BEGIN
    declare @DBFileName varchar(256)
	declare @BackupPath varchar(256)    
    set @DBFileName = datename(dw,getdate()) + ‘ - ‘ + 
                       replace(replace(@dbname,‘:‘,‘_‘),‘\‘,‘_‘) + ‘.bak‘

	-- Change the following path setting to client‘s backup path
	set @BackupPath = ‘D:\EIP-ZH_Backup\‘ + datename(dw,getdate()) + ‘\‘
 
	exec (‘BACKUP DATABASE [‘ + @dbname + ‘] TO  disK = N‘‘‘ + @BackupPath + 
        @DBFileName + ‘‘‘ WITH NOFORMAT,INIT,NAME = N‘‘‘ + 
        @dbname + ‘-Full Database Backup‘‘,SKIP,norEWIND,NOUNLOAD,STATS = 100‘)

    FETCH NEXT FROM DATABASES_CURSOR INTO @dbname
END

CLOSE DATABASES_CURSOR
DEALLOCATE DATABASES_CURSOR

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐