--第一步
USE master
GO
CREATE PROC p
@db_name sysname,
@bk_path NVARCHAR(1024)
AS
IF ISNULL(@db_name,'')=''
SET @db_name=db_name();
DECLARE @dt VARCHAR(50);
SET @dt=@db_name+'_'+CONVERT(VARCHAR(8),GETDATE(),112)+'_';
SET @dt=@dt+REPLACE(CONVERT(VARCHAR(10),GETDATE(),108),':','')
IF RIGHT(@bk_path,1)<>'\'
SET @bk_path=@bk_path+'\';
PRINT ('BACKUP DATABASE ['+@db_name+'] TO DISK='''+@bk_path+@dt+'.bak'' WITH FORMAT');
GO
--第二步
在某个文件夹里建两个txt文件 --如D:\batComand.txt 跟D:\BackupDatabase.txt
然后batCommand.txt文件内容如下:
sqlcmd -Smyfend\liangck -E -iG:\BackupDatabase.sql
然后保存.将扩展名改为.bat
然后BackupDatabase.txt文件内容如下:
USE master
GO
EXEC p '要备份的数据库名','G:\Backup\'
然后保存,将扩展名改为.sql
--第三步
新建任务计划.然后在选择执行哪个任务的时候..单击浏览..选择D:\batCommand.bat
设置每天执行..即可.
备份时的文件名是 : 数据库名_日期_时间.bak
上面.sqlcmd 后面的-S是实例名..你的是Express版本..则默认应该是 -S.\SQLExpress
-E是集成安全性,如果你设置了混合登录的话,应该提供 -U用户名 -P密码
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240825082459112-376424429.jpg)