随笔 - 435  文章 - 0  评论 - 111  阅读 - 62万 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Create PROCEDURE [dbo].[usp_BackupDatabase]  
       @databaseName sysname,@backupPath nvarchar(255), @backupType CHAR(1) 
AS 
BEGIN 
       SET NOCOUNT ON
 
       DECLARE @sqlCommand NVARCHAR(1000) 
       DECLARE @dateTime NVARCHAR(20) 
 
       SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') + 
       REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')  
 
       IF @backupType = 'F' 
               SET @sqlCommand = 'BACKUP DATABASE [' + @databaseName + 
               '] TO DISK = '''+@backupPath+'\' + @databaseName + '_Full_' + @dateTime + '.BAK''
          
       IF @backupType = 'D
               SET @sqlCommand = 'BACKUP DATABASE [' + @databaseName + 
               '[ TO DISK = '''+@backupPath+'\'+ @databaseName + '_Diff_' + @dateTime + '.BAK'' WITH DIFFERENTIAL'
          
       IF @backupType = 'L
               SET @sqlCommand = 'BACKUP LOG [' + @databaseName + 
               '[ TO DISK = '''+@backupPath+'\' + @databaseName + '_Log_' + @dateTime + '.TRN''
          
       EXECUTE sp_executesql @sqlCommand 
END

Backup.sql

 

批处理文件

1
2
3
4
5
6
7
8
9
10
11
SQLCMD.EXE -S .\SQLEXPRESS -E -i Backup.sql
@echo off
for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get LocalDateTime /value') do
    set t=%%a 
set Today=%t:~0,4%%t:~4,2%%t:~6,2%
set DBName=CRM_Test
rar a %DBName%_db_%Today%.rar %DBName%_Full_%Today%*.BAK
 
ping 127.0.0.1 -n 5
del %DBName%_Full_%Today%*.BAK

 

另一个写法

"C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE" -S .\ -E -i C:\Inetpub\CRM\App_Backup\Backup.sql
rar a CRM_Full_%date:~4,2%%date:~7,2%%date:~10,4%.rar CRM_Full_%date:~10,4%%date:~4,2%%date:~7,2%*.BAK
del CRM_Full_%date:~10,4%%date:~4,2%%date:~7,2%*.BAK

 

posted on   Gu  阅读(503)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
历史上的今天:
2009-11-12 如何做类似google的Textbox的AutoComplete增强版,可以显示多列
点击右上角即可分享
微信分享提示