自动化程序SQL

时间:2016-09-01 18:16:46

标签: sql

SQL中的自动程序究竟是什么?我在接受采访时被问及他们,我对他们并不熟悉。它们会与触发器相似吗?

2 个答案:

答案 0 :(得分:2)

SQL Server能够以特定时间/增量运行某些SQL代码

这是一个很棒的信息网站: https://www.simple-talk.com/sql/database-administration/setting-up-your-sql-server-agent-correctly/

正式来自微软。 有关更多信息: https://msdn.microsoft.com/en-us/library/ms187061.aspx

如果你想设置一个,你需要是sysadmin: https://msdn.microsoft.com/en-us/library/ms190268.aspx

答案 1 :(得分:0)

如果您谈论一般意义上的自动程序,您就会谈论在没有用户交互的情况下执行的任务列表。在数据库上下文中,自动过程是一个自动执行的指令列表,您无需一个接一个地编写它们。

现在,让我们具体一点(我使用MySQL,所以我将使用它的命名法):

存储过程是一个指令列表,它作为一个单独调用的单元执行。一个例子是:

delimiter $$
create procedure HelloWorld()
begin
    select 'Hello world';
end $$
delimiter ;

可以使用单个指令调用上述过程:

call HelloWorld();
+-------------+
| Hello World |
+-------------+
| Hello World |
+-------------+

这很简单,但您可以使用存储过程执行所有类型的操作。例如:

delimiter $$
create procedure CloseTheDay(d date)
begin
    declare debits, credits decimal(18,6);
    select sum(debit), sum(credit)
    into debits, credits
    from tranasctions as t
    where t.date < date_add(d, interval +1 day);

    select 'Total', debits, credits;
end $$
delimiter ;

您可以拥有控制流语句,您可以使用游标处理数据,可以插入或删除数据......您几乎可以使用存储过程执行任何操作。从这个意义上说,这是一个自动程序。

如果您想添加甚至不需要用户来调用该过程的要求,您可以从

中调用它。
  • 插入或删除数据时触发的触发器
  • 事件调度程序,您可以在其中配置将调用该过程的日期和时间

希望这有帮助