sql定时执行
A. 怎么使某一条sql语句每天定时执行
在linux or Unix系统中有一个叫crontag的东西。
你可以设定执行的时间,它就是每天循环执行了。
格式:(second hour date month week)
00 10 * * * /u01/app/cronjob/exe_select.sh
每天十点整执行一次
B. SQL定时执行存储过程
如果你能控制服务器 可以在服务器中设置计划 执行那个程序 在程序中调用你的过程这样是可以的
sql没有自动执行的东西
C. SQL Server 里需要定时执行某个存储过程,存储过程怎么写
1、管理->SQL Server代理->作业(按鼠标右键)->新建作业->
2、新建作业属性(常规)->名称[自定义本次作业的名称]->启用的方框内是勾号->
分类处可选择也可用默认的[未分类(本地)]->所有者默认为登录SQL Server用户[也可选其它的登录]->描述[填写本次工作详细描述内容];[ 创建作业分类的步骤:SQL Server代理->作业->右键选所有任务->添加、修改、删除 ]
3、新建作业属性(步骤)->新建->步骤名[自定义第一步骤名称]->类型[Transact-SQL(TSQL)脚本]->数据库[要操作的数据库]->命令[ 如果是简单的SQL直接写进去即可,也可用打开按钮输入一个已写好的*.sql文件如果要执行存储过程,填exec p_procere_name v_parameter1,[ v_parameter2…v_parameterN]]->确定(如果有多个步骤,可以再次调用下面的新建按钮;也可以对已有的多个步骤插入、编辑、删除);
4、建作业属性(调度)->新建调度->名称[自定义调度名称]->启用的方框内是勾号->调度->反复出现->更改[调度时间表]->确定(如果只要保存此作业,不要定时做可以把启用的方框内是勾号去掉);
5、建作业属性(通知)->用默认的通知方法就好[当作业失败时,写入Windows应用程序系统日志] ->确定。
D. SQL Server如何创建定时作业
我们使用SQL Server管理数据的时候,经常会在某个时间执行一些数据作业。那么如何在SQL Server中设置定时作业呢?下面我给大家分享一下。
工具/材料
SQL Server Managment
- 01
首先打开SQL Server Managment管理软件,展开SQL Server代理,然后右键单击作业,选择新建作业,如下图所示
- 02
接下来会弹出新建作业界面,我们需要在在常规页中设置定时作业的名称和说明,如下图所示
- 03
然后点击步骤选项卡,在右侧点击新建按钮,如下图所示
- 04
接下来在新建步骤页面中输入要执行的定时任务名称,一般是存储过程或者函数的名称,如下图所示
- 05
点击确定以后定时任务就添加到作业步骤列表了,如下图所示,如果需要的话还可以添加其他的作业
- 06
接下来点击计划选项卡,点击右侧的新建计划按钮,如下图所示
- 07
在新建计划作业界面中选择定时作业执行的时间间隔,这里可以灵活的设置,如下图所示
- 08
当计划作业设置完毕,点击确定以后,计划步骤就加入到了计划列表中了,如下图所示
- 09
最后设置完了我们回到作业文件夹下面,你就会看到刚才新建的定时任务已经添加好了,如下图所示
E. oracle触发器中定时执行sql
1.
关于Oracle
触发器中定时执行SQL
的问题,
Oracle触
发器只是在表中数据被更新
如Insert,update,delete
等情况下才会触发,不能做到定时,只是能是有变化时才会执行!
2.
要做到定时执行可使用Job
来完成
3.
数据已经完成插入,建议插入数据时,直接使用触发器
4.
例2:限制对Departments表修改(包括INSERT,DELETE,UPDATE)的时间范围,即不允许在非工作时间修改departments表。
CREATE OR REPLACE TRIGGER tr_dept_time
BEFORE INSERT OR DELETE OR UPDATE
ON departments
BEGIN
IF (TO_CHAR(sysdate,'DAY') IN ('星期六', '星期日')) OR (TO_CHAR(sysdate, 'HH24:MI') NOT BETWEEN '08:30' AND '18:00') THEN
RAISE_APPLICATION_ERROR(-20001, '不是上班时间,不能修改departments表');
END IF;
END;
F. Oracle中如何定时执行一条SQL语句
通过网上查询,找到一种方案,就是先在oracle里面对要定时的sql写成存储过程,再用DBMS_scheler对存储过程进行定时执行。
在数据库中新建了一个表MY_JOB_TEST
在数据库中新建了一个表MY_JOB_TEST
在数据库中新建了一个表MY_JOB_TEST
在PLSQL中,执行下面语句模拟存储过程的调用,执行后要点提交才有反应
[sql] view plain
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
GrantCreateJobTo指定用户名
SQL>CREATEORREPLACEPROCEDURE
JOB_TEST
BEGIN
INSERTINTOMY_JOB_TEST(NUM)VALUES(1);
END;
- (此处要执行存储过程不能用exec JB_TEST,这种执行方式只能在命令行中使用)
SQL>BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name=>'SCHEDULER_TEST',
job_type=>'STORED_PROCEDURE',
job_action=>'JOB_TEST',
start_date=>sysdate,
repeat_interval=>'FREQ=MINUTELY;INTERVAL=1');
END;
- 但是这样子定时任务并不会执行。
SQL>SELECT*FROMUSER_SCHEDULER_JOBS;
- 此时我们可以看到enable的状态是false的,因此我们需要去启动定时任务
SQL>BEGIN
DBMS_SCHEDULER.ENABLE('SCHEDULER_TEST');
然后下面建立一个存储过程JOB_TEST
(注意,这里用户需要CREATE JOB权限,可以用超级管理员用户执行下面语句给指定用户赋予该权限)
[sql] view plain
[sql] view plain
使用DBMS_SCHEDULER进行定时,这里为每分钟执行一次
[sql] view plain
我们可以用下面的命令查看一下scheler的状态
[plain] view plain
[plain] view plain
dbms_scheler.enable('j_test'); --启用jobs
dbms_scheler.disable('j_test'); --禁用jobs
dbms_scheler.run_job('j_test'); --执行jobs
dbms_scheler.stop_job('j_test'); --停止jobs
dbms_scheler.drop_job('j_test'); --删除jobs
然后再查询job的enable装态,发现为true了。
然后查看MY_JOB_TEST表,发现每分钟会往里面添加记录。
当需要修改定时任务或者调度的其他属性时,可以用下面的
dbms_scheler.set_attribute('调度名','调度属性','调度值');
至此,定时任务完成。
G. 如何将一条sql语句每天定时的执行,执行完了,自动发出短信
1 使用sql的job来实现sql的定时执行
2 执行完时,将短信信息写入一张有关的信息表。
3 另外一个短信服务程序,不停查找待发短信,并发送
H. 怎么样才能让sql数据库定期执行一句sql语句
create or replace procere MYPROCEDURE is
begin
UPDATE mac_vod SET vod_play_url= replace(vod_play_url, '第', '弟');
commit;
end MYPROCEDURE;
declare myjob number;
begin
DBMS_JOB.SUBMIT(
job => myjob,
what => 'myprocere;',
next_date => SYSDATE,
interval => 'sysdate+5/(24*60)');
commit;
end;
I. 请教,如何定时自动执行SQL
--"类型"中选择"Transact-SQL 脚本(TSQL)" --"数据库"选择执行命令的数据库 --"命令"中输入要执行的语句: Update City Set IsAccess=0--确定--"调度"项--新建调度--"名称"中输入调度名称 --"调度类型"中选择你的作业执行安排--定为每天调度一次,时间为18:40即可 --如果选择"反复出现" --点"更改"来设置你的时间安排 然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行设置方法:我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.