我知道可以定期运行某些作业或查询数据库。如何在azure sql表中每隔“x”天运行一次这段代码?
DELETE FROM [MobileServiceExtra].[ACTIVITY]
WHERE [NewsItemDate] < GETDATE()- 5
答案 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。我将它用于日常的表截断,对我来说很完美。