zoukankan      html  css  js  c++  java
  • windows计划任务执行SQLserver脚本

    2016年3月1号,北京出差,documentbrowser系统改善上线。

    其中有一个数据库表需要每天进行同步,原计划使用SQLServer的作业来执行又方便又快捷,但是客户的数据库是05的express版没有数据库作业。客户系统已经使用多年,如果升级数据库正式版会存在一定的风险,一担升级失败,客户的生产环境瘫痪,耽误了客户那就不好了。该怎么办呢?首先想到是用Windows服务,在系统启动时自动执行服务,在服务中每天定时执行数据库同步任务,但是需要编写程序并制作成.exe安装程序,有点麻烦,不适合现在的情况。

    后来想了想,用windows自己的计划任务,每天定时执行.bat文件,在bat文件中执行数据库同步脚本,又方便又快捷还安全。下面就把步骤写一下,作为备忘。

    一.windows计划任务执行数据库脚本手顺

     

    1.  将updateExtend08Extend09.bat和mysql.sql拷贝到c盘后,如下图

     

    2.  在Windows的控制面板找到“计划任务”,并双击进入设置

     

    3.  点击“添加任务计划”创建一个新的计划任务

     

    4.下一步

     

    5.选择“浏览。。。”

     

    6.选择c盘下的“updateExtend08Extend09.bat”点击“打开”

     

    7.选择“每天”执行任务,下一步:

     

    8.设置执行时间和起始日期,点击;下一步

     

    9.输入本机的登录名和密码,点击下一步

     

    10.点击完成设置完毕。

     

     

    二.在数据库中执行“数据库脚本.txt”创建存储过程

     

     1 CREATE PROCEDURE [dbo].[SP_UpdateUserExtend08andExtend09]
     2 
     3 AS
     4 BEGIN
     5     -- SET NOCOUNT ON added to prevent extra result sets from
     6     -- interfering with SELECT statements.
     7     SET NOCOUNT ON;
     8 
     9     --员工(包括专家)审批人为上级经理    
    10     update AddressTBL 
    11     set Extend08=b.mgr_code,
    12         Extend09=b.mgr_name
    13     from (
    14         select uid, mgr_code,mgr_name from View_ApprovalLine
    15     ) as b 
    16     where AddressTBL.UserID=b.uid collate Chinese_PRC_CI_AI_WS
    17         and AddressTBL.Extend03='ECC'
    18         and AddressTBL.Extend02 in('特殊雇员','业务经理','主管','助理','专家','专员')
    19         
    20         
    21     --经理(包括高级专家)审批人为上级部门经理
    22     
    23     update AddressTBL 
    24     set Extend08=b.dm_code,
    25         Extend09=b.dm_name
    26     from (
    27         select uid, dm_code,dm_name from View_ApprovalLine
    28     ) as b 
    29     where AddressTBL.UserID=b.uid collate Chinese_PRC_CI_AI_WS
    30         and AddressTBL.Extend03='ECC'
    31         and AddressTBL.Extend02 in('经理')
    32     
    33     --部门经理及以上同步为法务窗口
    34     update AddressTBL 
    35     set Extend08='ecclegal',
    36         Extend09='法务窗口'
    37     where AddressTBL.Extend03='ECC'
    38         and AddressTBL.Extend02 in ('部门经理','董事长','副总经理','高级总监','总监','总经理','其他')
    39     
    40     
    41 END

    脚本运行后会在dbrowser_address库中创建一个新的存储过程。

    三.修改批处理文件,设置数据库链接地址和数据库用户,数据库密码

    找到C:updateExtend08Extend09.bat右键选择编辑

     

    将红框中的数据库地址,用户名和密码替换成本机的即可。

    sqlcmd -?查看命令参数

    mysql.sql代码:

    1 use dbrowser_address
    2 go
    3 exec SP_UpdateUserExtend08andExtend09
    4 go

    这个例子把批处理文件和my.sql脚本放到了c盘,只是为了举例说明,可以按照实际情况将两个文件放到任意位置(路径中最好不要有中文),然后在设置计划任务时指定.bat即可。

  • 相关阅读:
    【Python3爬虫】一次应对JS反调试的记录
    【Python3爬虫】突破反爬之应对前端反调试手段
    学习CSS之如何改变CSS伪元素的样式
    学习CSS之用CSS实现时钟效果
    学习CSS之用CSS绘制一些基本图形
    【Python3爬虫】一次破解JS加密数据的记录
    Linux安装部署Redis(超级详细)
    Linux部署MongoDB
    使用Nginx对.NetCore站点进行反向代理
    Linux部署.NetCore站点 使用Supervisor进行托管部署
  • 原文地址:https://www.cnblogs.com/MingDe/p/5237768.html
Copyright © 2011-2022 走看看