如何在SQL Server中每小时运行一次存储过程?

45

我有一个表格需要每小时执行一些操作。为此,我创建了一个存储过程,但不知道如何每小时调用它。我知道有一些定时任务,但不知道如何使用。

是否存在某种服务可以持续运行,每秒钟执行一次,我可以在其中放置要执行的代码?

3个回答

74

在 SSMS 中导航到 SQL Server Agent-->Jobs 右键单击作业文件夹并选择新建作业

在弹出的对话框中为作业命名, 点击“步骤”,然后“新建”,您将看到如下对话框,选择正确的数据库并输入存储过程名称

alt text

之后点击“计划”,选择“新建”,您将看到下面这个图像,填写所需的所有信息,然后点击“确定”、“确定”,即可完成设置。 alt text


imgur的嵌入现在有些问题,但如果对其他人有用的话,我可以直接访问这些图片:http://i.imgur.com/Woxpv.png 和 http://i.imgur.com/tSUau.png。 - ruffin
2
如果您需要根据存储过程的结果向某人(比如WebMaster)发送通知电子邮件,在作业步骤中:
DECLARE @result bit --假设YourProc的输出是bit类型。
Exec YourProc @spResult = @result OUTPUT 然后
if(@result = 0) Begin DECLARE @subject nvarchar(max) = '通知!' DECLARE @body nvarchar(max) = '出了些问题...' DECLARE @to nvarchar(max) = 'WebMaster@Somewhere.com' EXEC msdb.dbo.sp_send_dbmail @recipients = @to, @subject = @subject, @body = @body; End
- Amir Chatrbahr
我尝试了这种情况,但是我有点困惑为什么它第二天不执行。所有设置都一样,特别是每日频率的设置。 - Juran
SQL Server代理位于底部附近,管理下方,仅适用于非Express版本的SQL Server Management Studio中具有Sysadmin角色的用户。在较新的版本中,您必须单击“步骤”以输入过程名称。 - Henrik Erlandsson

4

1) 使用SQL Server代理(打开MS Management Studio) 2)新建作业 3)添加步骤 4)选择Transact SQL 5)EXEC MyStroredProc 6)选择数据库 7)添加计划 8)每小时发生

添加通知以了解进程的执行情况(好或坏)。

在SQL Server代理的属性中检查所有自动重启选项是否已打开。


0

设置一个 SQL Server 代理作业,以每小时执行一次存储过程


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接