[英]How to truncate SQL database on Microsoft Azure periodically
我有一个在 Microsoft Azure 上运行的 SQL 数据库。 为了防止它变得太大,我必须定期截断它(例如,一两天)。 truncate table xxx
是我需要执行的 SQL。
那么实现这一目标的最简单方法是什么? 我宁愿不编写任何 C# 代码,除非我必须这样做。 我可以使用连续运行截断 SQL 语句的 Web 作业吗? 或者我可以使用 Azure 上的 SQL 数据库的内置功能来实现这一点吗? 谢谢!
实际上,您可以使用 Azure 函数(“TimeTrigger”类型)来定期清除您的表,以下是在 C# TimeTrigger Azure 函数中使用的代码示例,以获取与 Azure Sql 数据库的连接并执行“删除”sql 查询:
#r "System.Data"
using System;
using System.Data.SqlClient;
public static async Task Run(TimerInfo myTimer, TraceWriter log)
{
string userName = "*******";
string passWord = "********";
var connectionString = $"Server=tcp:work-on- sqlazure.database.windows.net,1433;Data Source=work-on-sqlazure.database.windows.net;Initial Catalog=VideoStore;Persist Security Info=False;User ID={userName};Password={passWord};Pooling=False;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;";
using(SqlConnection cns = new SqlConnection(connectionString))
{
cns.Open();
var truncateUserTable = "DELETE FROM Video";
using(SqlCommand cmd = new SqlCommand(truncateUserTable, cns))
{
int rowsDeleted = await cmd.ExecuteNonQueryAsync();
}
}
}
然后,您可以使用cron表达式从 Azure Azure 函数“集成”空间配置计时器逻辑。
SQL Azure 还没有任何类型的 SQL 代理功能,因此您必须创建一个 Web 作业(或一些执行您需要执行的 SQL 的 JavaScript),然后使用 Azure 调度程序来安排作业。
您还可以使用涉及 Powershell 的 Azure 自动化来执行相同的操作。
您可以创建一个弹性数据库池并将您的数据库包含在池中。完成此操作后,您可以对池中的所有数据库或单个数据库运行一组任务或查询。
更多关于这里..
https://azure.microsoft.com/en-in/documentation/articles/sql-database-elastic-jobs-overview/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.