怎么实现定时执行一个存储过程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhexiaode/article/details/85336682
  • 需求:客户要求把A系统出来的一些数据每月底同步到指定表(在A系统数据库)中。
  • 实现方案:往指定表插数据采用存储过程(procA)。每月底执行采用windows任务定时或“SQL Server代理——作业”实现。
  • 怎么使用windows自带任务定时执行bat实现上述需求?

1、先创建执行存储过程的sql文件mysql.sql:文件核心代码是执行存储过程procA的SQL,另外,此文件里可以写各类sql语句。


use 数据库名
go
	exec procA
go

2、创建bat文件test.bat:访问数据库并执行sql脚本。在cmd中可sqlcmd -?了解各参数含义。注意,参数-imysql.sql文件绝对路径。


sqlcmd -S 数据库地址 -U 用户名称 -P 密码 -i d:\mysql.sql

3、创建输出日志bat文件testDebug.bat:执行test.bat并把执行结果输出到D:\test-Log.txt(很详细与sql server执行反馈一致)。


@echo off
call "D:\test.bat">D:\test-Log.txt
start notepad D:\test-Log.txt

4、具体windows任务创建等参考win10 计划任务中加入bat文件执行2

  • 怎么使用SQL Server代理–作业实现上述需求?

在数据库服务器上登录SQL server management后找到数据库的“sql server代理”并右键启动,在“作业”右键"新建作业",操作截图见“SQLserver创建代理作业”。怎么查看历史执行情况?找到自己作业后右键“查看历史记录” → “作业历史记录”勾选自己作业 → 右窗口展开加号即可看每次作业执行耗时等情况了。

猜你喜欢

转载自blog.csdn.net/zhexiaode/article/details/85336682