存储过程bat 备份SQL SERVER

记录bat存储过程备份数据库代码

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
 
 
alter PROCEDURE dbBak   
 
AS  
BEGIN  
   DECLARE @sqlCommand NVARCHAR(1000)  
   DECLARE @dateTime NVARCHAR(20) 
   SELECT @dateTime = REPLACE(CONVERT(VARCHAR, GETDATE(),111),'/','') +  
   REPLACE(CONVERT(VARCHAR, GETDATE(),108),':','')   
   SET @sqlCommand = 'BACKUP DATABASE oa_product_test TO DISK = ''D:\SqlServerDataBaseBAK\oa_product_test_' + @dateTime + '.BAK'''   
   EXECUTE sp_executesql @sqlCommand
END

存储过程写死保存的路径,新建一个 .sql 文件,文件中执行 exec dbBak 存储过程,并且给bat 调用,bat代码如下

@ECHO OFF
 
SET dbhost=127.0.0.1
SET dbuser=Loan
SET dbpasswd=L0708~!
set dbName=oa_product_test
SET sqlpath=%~dp0
set sqlfile=backup.sql
 
 
::osql -S %dbhost% -U %dbuser% -P %dbpasswd% -d %dbName% -i %sqlpath%%sqlfile%
osql -S 127.0.0.1 -U Loan -P L0708~! -d oa_product_test -i backup.sql
 
ECHO finish
 
@ECHO Done!
 
::代码中注释部分,参数说明很明显了。 主要代码就是 osql 后面的部分,上方只是个参数说明。
backup.sql 是个文件,里面只是调用存储过程代码。

 

 

posted @ 2022-02-08 14:54  颖子的踏坑路线  阅读(251)  评论(0编辑  收藏  举报