首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何定期删除Azure SQL DB中的数据

如何定期删除Azure SQL DB中的数据
EN

Stack Overflow用户
提问于 2020-09-04 18:46:42
回答 3查看 1.7K关注 0票数 1

在连接到事件中心时,我使用流分析将数据摄取到Azure SQL数据库中。我想要做的是定期从我的表中删除数据,这样我只保留了一定的存储天数。例: 30天。

我一直试图跟踪一种定期对我的数据库执行所需的to的方法,并找到了Azure弹性作业作为解决方案。

https://learn.microsoft.com/en-us/azure/azure-sql/database/elastic-jobs-tsql-create-manage

这是定期从azure SQL数据库中删除行的最佳方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-07 02:04:38

可以创建存储过程以删除表中的数据。

有很多方法可以做到这一点。

  1. 在Data中,创建一个用时间触发器调用delete存储过程的管道:每个月:
  1. 使用Logic,创建一个递归触发器来调用delete存储过程:
  1. 你可以试试你找到的Azure弹性工作。

只需选择您认为最容易的方式,我认为这是定期从蔚蓝SQL数据库中删除行的最佳方法。

票数 1
EN

Stack Overflow用户

发布于 2020-09-04 19:34:05

时态表有一个保留期。如果它适用于您的用例,请考虑这一点。否则,您可以像前面提到的那样,每天使用作业框架删除一次旧数据。

票数 0
EN

Stack Overflow用户

发布于 2020-09-08 04:16:47

您也可以使用Azure自动化来运行一个存储过程来完成清理工作。您可以在一个PowerShell ( Automation)上运行以下RunBook。

代码语言:javascript
复制
$sqlSvrName=“DBServerName"

$sqlDbName=“DatabaseName"

$sqlUserName=“DatabaseUserName"

$sqlPassword=“DatabaseUserPassword"

$sqlStoredProcedure=“StoredProcedureName"

 

$sqlConnection = New-Object System.Data.SqlClient.SqlConnection

$sqlConnection.ConnectionString = “Server=$sqlSvrName;uid=$sqlUserName;pwd=$sqlPassword;Initial Catalog=$sqlDbName“

$startDateTime = Get-Date

$sqlConnection.Open()

 

select $sqlConnection.ConnectionString

 

$sqlCmd = New-Object System.Data.SqlClient.SqlCommand

# specify that command is a stored procedure

$sqlCmd.CommandType=[System.Data.CommandType]'StoredProcedure'

# specify the name of the stored procedure

$sqlCmd.CommandText = $sqlStoredProcedure

$sqlCmd.Connection = $sqlConnection 

#————- specify optional parameters to stored procedure

#$startDateTime=$sqlCmd.Parameters.Add(“@rundatetime" , [System.Data.SqlDbType]::DateTime)

$startDateTime = Get-Date

 $sqlCmd.ExecuteNonQuery() 

要了解在Azure自动化上完成此操作的完整步骤,请阅读这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63746551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档