- 需求:客户要求把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 -?
了解各参数含义。注意,参数-i
是mysql.sql
文件绝对路径。sqlcmd -S 数据库地址 -U 用户名称 -P 密码 -i d:mysql.sql
3、创建输出日志bat文件
testDebug.bat
:执行test.bat
并把执行结果输出到D: est-Log.txt
(很详细与sql server执行反馈一致)。@echo off call "D: est.bat">D: est-Log.txt start notepad D: est-Log.txt
4、具体windows任务创建等参考win10 计划任务中加入bat文件执行、2
- 怎么使用SQL Server代理--作业实现上述需求?
在数据库服务器上登录SQL server management后找到数据库的“sql server代理”并右键启动,在“作业”右键"新建作业",操作截图见“SQLserver创建代理作业”。怎么查看历史执行情况?找到自己作业后右键“查看历史记录” → “作业历史记录”勾选自己作业 → 右窗口展开加号即可看每次作业执行耗时等情况了。