如何定时在SQL SEVER中让SQL 执行某一脚本或者存储过程,达到定期自动更新的功能,要求在SQL SERVER中自动完成。
请各位大侠帮帮忙,详细点。。谢谢各位大侠拉。。

解决方案 »

  1.   

    楼上正解。
    --具体步骤:
    企业管理器
    --管理
    --SQL Server代理
    --右键作业
    --新建作业
    --"常规"项中输入作业名称
    --"步骤"项
    --新建
    --"步骤名"中输入步骤名
    --"类型"中选择"Transact-SQL 脚本(TSQL)"
    --"数据库"选择执行命令的数据库
    --"命令"中输入要执行的语句:
     
       Update City Set IsAccess=0
    --确定
    --"调度"项
    --新建调度
    --"名称"中输入调度名称
    --"调度类型"中选择你的作业执行安排--定为每天调度一次,时间为18:40即可
    --如果选择"反复出现"
    --点"更改"来设置你的时间安排
    然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:
    我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
      

  2.   

    谢谢楼上大侠帮助,但我还有点没明白这个作业,我想每个月最后一天的最后一时刻执行这个操作,也就是月底最后一天23:59:59秒,或者23:58分左右的时间执行此操作,请问这个应该怎么设置呢??
    --"调度类型"中选择你的作业执行安排--发生频率选择每月第31天,每日频率选择23:59:59就可。
    说明:选每月第31天就代表月底,如此月是六月,只有30天,它就会在6月30日执行此作业。
    ==================
    不好意思,上面说错了,如果设成31,那月小只有30是不会执行的,所以上面作业是实现不了楼主的要求,但可以建一个这样的作业来变通达到楼主要求:
    1首先把此作业设成每天23:59:58时执行:
    2执行的代码如下:
    if datepart(day,cast(convert(char(7),dateadd(m,1,getdate()),120)+'-01' as datetime)-1)=day(getdate())
    begin
    --下面放你要执行的语句end
      

  3.   

    谢谢各位的帮助,我把每个月初00:00:00做更新拉,,但今天发现我把日期时间向后调整,然后在调整回来发现作业不会自己执行??请问这个怎么处理,作业的SQL语句测试没有问题,我点击“启动作业”也能正常执行。。但发现作业的“状态”是“不在运行” “启动”是“是”,“可运行”是“是”,“已调度”是“是”,“下次运行时间”是“2006-11-01 00:00:00”
    我把日期调整成7月,作业不自己执行,这个怎么解决呀??请大侠们指点一下,,谢谢拉
      

  4.   

    你看一下下次运行时间是什么时候,然后将系统时间改为前一天,如下次运行时间为“2006-11-01 00:00:00”。你就把当前时间改为2006-10-31 23:55:00,多等一小会儿吧。还有就是要注意执行的权限问题,可能会因为你选择的用户无执行权导至这个问题的,你可以试着用本机的administrator来执行。