定时执行存储过程

  • 需求:客户要求把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创建代理作业”。怎么查看历史执行情况?找到自己作业后右键“查看历史记录” → “作业历史记录”勾选自己作业 → 右窗口展开加号即可看每次作业执行耗时等情况了。

猜你喜欢

转载自www.cnblogs.com/anjun-xy/p/10195463.html