如何在azure中定期运行sql查询?

时间:2013-11-17 22:02:57

标签: sql azure azure-sql-database

我知道可以定期运行某些作业或查询数据库。如何在azure sql表中每隔“x”天运行一次这段代码?

DELETE FROM [MobileServiceExtra].[ACTIVITY]
WHERE [NewsItemDate] < GETDATE()- 5

7 个答案:

答案 0 :(得分:4)

Windows Azure计划程序是刚刚进入预览的新服务 - http://www.windowsazure.com/en-us/services/scheduler/。这看起来像是一种通用服务来做这种事情。我不认为Azure上的SQL会支持Agent。

答案 1 :(得分:1)

似乎Azure does not support SQL Server Agent and scheduling of jobs

根据MSDN上的一系列博客文章,您可以使用Windows Azure Worker角色来安排自定义作业(运行SQL):

I Miss You SQL Server Agent: Part 1

我没试过这个,所以我不能告诉你它是否是一个可行的解决方案。

答案 2 :(得分:1)

我们在Azure组合的Web和辅助角色中使用Quartz.Net

您可以看到我的同事发布了here

答案 3 :(得分:1)

看起来您正在使用移动服务。移动服务附带一个调度程序,可以连接到您的数据库,并在定期计划中执行您需要的任何操作。

更多信息:
Build your own SQL Server Agent for Windows Azure SQL Database with the Scheduler

您最终会在Scheduler中编写一些javascript来运行您的SQL语句:

function Call_sp_ClearOldLogs() {
    console.log("Executing sp_ClearOldLogs...");
    mssql.query('EXEC dbo.sp_ClearOldLogs', {
        success: function(results) {
        console.log("Finished executing sp_ClearOldLogs.");
        }
    });
}

答案 4 :(得分:0)

您现在可以使用Windows azure scheduler预览http://www.windowsazure.com/en-us/services/scheduler/

请查看价格,现在他们每月收费10美元,一旦预览期结束,它将增加到每月20美元。

你也可以尝试aditi scheduler http://www.aditicloud.com/,aditi调度程序的唯一问题是它在azure商店中可用(在许多国家都无法访问),你必须再次使用你的信用卡来消费它

希望它有所帮助!

感谢。

Mohit Chhabra

答案 5 :(得分:0)

如果您愿意为此使用服务,我们会提供this functionality within our Cotega service。它的工作方式是在数据库中创建一个存储过程来执行此代码,并简单地设置一个运行时间表。

答案 6 :(得分:0)

您可以使用Azure Automation Runbook。示例here。我将它用于日常的表截断,对我来说很完美。