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”创建存储过程

 CREATE PROCEDURE [dbo].[SP_UpdateUserExtend08andExtend09]

 AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON; --员工(包括专家)审批人为上级经理
update AddressTBL
set Extend08=b.mgr_code,
Extend09=b.mgr_name
from (
select uid, mgr_code,mgr_name from View_ApprovalLine
) as b
where AddressTBL.UserID=b.uid collate Chinese_PRC_CI_AI_WS
and AddressTBL.Extend03='ECC'
and AddressTBL.Extend02 in('特殊雇员','业务经理','主管','助理','专家','专员') --经理(包括高级专家)审批人为上级部门经理 update AddressTBL
set Extend08=b.dm_code,
Extend09=b.dm_name
from (
select uid, dm_code,dm_name from View_ApprovalLine
) as b
where AddressTBL.UserID=b.uid collate Chinese_PRC_CI_AI_WS
and AddressTBL.Extend03='ECC'
and AddressTBL.Extend02 in('经理') --部门经理及以上同步为法务窗口
update AddressTBL
set Extend08='ecclegal',
Extend09='法务窗口'
where AddressTBL.Extend03='ECC'
and AddressTBL.Extend02 in ('部门经理','董事长','副总经理','高级总监','总监','总经理','其他') END

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

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

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

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

sqlcmd -?查看命令参数

mysql.sql代码:

 use dbrowser_address
go
exec SP_UpdateUserExtend08andExtend09
go

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

windows计划任务执行SQLserver脚本的更多相关文章

  1. windows 计划任务执行python脚本

    1.  查找并打开Windows计划任务 2. 创建任务 3. 输入名称 4. 通过触发器设置运行时间或周期 5. 通过操作,设置运行的脚本 a. 操作选择'启动程序' b. 程序或脚本选择 pyth ...

  2. linux下设置计划任务执行python脚本

    linux下设置计划任务执行python脚本 简介 crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自 ...

  3. win7计划任务执行php脚本方法

    第一步:编写bat文件 方法1:php方法 方法2:exploere浏览器 电脑上新建一个txt文本,把代码放进去.然后把他另存为xxx.bat explorer "http://网址/e/ ...

  4. 用windows计划任务执行一些内容的写法,

    用windows计划任务执行一些内容的写法, 以下示例: 1.创建ws对象 2.关闭java进程 3.执行bat文件 start.vbe文件内容 set ws=wscript.createobject ...

  5. Windows计划任务执行时不显示窗口的问题

    最近开发了工具,带界面的,需要定时执行的,为了方便直接用Windows计划任务做定时了.跑了一段时间发现,进程中也有,就是看不到程序的界面,进程的执行貌似也阻塞了. 从网上查了下,发现时启动方式的问题 ...

  6. 怎样在windows上定时执行python脚本

    作为一个需要在电脑上工作和学习的人,一件十分困扰我的事情就是怎样不受互联网中其他内容的干扰而专注于自己想要做的事情,有的时候真的是沉浸于微博上的消息,忘了自己本来想要做的事.不过我有一件神器,自己爱豆 ...

  7. Windows下怎么执行shell脚本

    1.在windows下想要执行shell脚本,需要使用到"Git Bash",所以我们需要先安装Git. 2.查看Git环境变量是否配置,没有配置需要配置(我这里安装Git时自动配 ...

  8. windows开机自动执行bat脚本

    一.以windows下备份sql数据库为例,开机自动执行.bat脚本 1.新建dump.bat文件,文件中的代码如下: set YYYYmmdd=%date:~0,4%%date:~5,2%%date ...

  9. Windows下批处理执行MySQL脚本文件

    转载至http://my.oschina.net/u/660932/blog/117929 一. @echo offSetlocal enabledelayedexpansion::CODER BY ...

随机推荐

  1. WPF之插件开发

    一:解决方案管理器截图 效果图: 二:简单功能说明 IMsg定义了一个接口,MYPlugin1实现接口功能,”插件式开发“实现程序运行时再调用非本身引用的dll文件,调用该dll的方法实现功能 三:I ...

  2. Java---注解、类加载器-加强-实现运行任意目录下class中加了@MyTest的空参方法

    做自己的类加载器 虚拟机的核心是通过类加载器来加载.class文件,然后进行相应的解析执行.那么我们可以自己做类加载器,手动加载需要的.class以进行解析执行,从而扩展虚拟机的功能. 以下内容摘自A ...

  3. QQ互联 回调地址

    http://wiki.connect.qq.com/%E5%9B%9E%E8%B0%83%E5%9C%B0%E5%9D%80%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98% ...

  4. ActionFilterAttribute OnActionExecuting 获取参数

    public class AuthFilterAttribute : ActionFilterAttribute { /// <summary> /// Action执行前处理 /// & ...

  5. 个人整理--Java编码规范

    编码规范对于开发人员来说是非常重要的,有以下几个原因: 1.一个软件的生命周期中,80%的花费在于维护 2.几乎没有任何一个软件,在其整个生命周期中,均由最初的开发人员来维护 3.编码规范可以改善软件 ...

  6. sizeof操作符-结构体与类大小

    导读 sizeof是C/C++一个难点,当在自定义类上应用sizeof操作符时,总会出现意想不到的结果,下面,我们就来探讨一下sizeof这个操作符! 目录 1. sizeof与strlen的区别 2 ...

  7. Quartz简单使用

    官方的Quartz会提供例子的,例子看个前三四个感觉就够用了,主要就是起Timer的作用,但是比timer稳定,而且功能更全. UpdateClientTimer.task(ClearJob.clas ...

  8. Java笔试题二:读程序

    public class SopResult { public static void main(String[] args) { int i = 4; System.out.println(&quo ...

  9. mysql 大表 Sharding [转]

    参看以下两篇文章 http://www.dedecms.com/knowledge/data-base/mysql/2012/0820/9172.html http://dbanotes.net/da ...

  10. Android缓存技术

    android应用程序中 1. 尽可能的把文件缓存到本地.可以是 memory,cache dir,甚至是放进 SD 卡中(比如大的图片和音视频).    可以设置双重缓冲,较大的图片或者音频放到SD ...