首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Azure SQL数据库中进行归档和清除

如何在Azure SQL数据库中进行归档和清除
EN

Stack Overflow用户
提问于 2019-09-06 05:11:24
回答 2查看 2.5K关注 0票数 0

我使用Azure数据库作为我的源database.Which,包括10个表。我需要在一个year.Currently之间的时间间隔内对表中的数据进行归档和清除,我正在使用Azure数据工厂将数据从源数据库转移到数据warehouse.Can,我使用数据factory.If进行归档和清除,而不是请建议我执行此活动的正确方法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-10 09:08:02

我可以使用数据工厂进行归档和清除吗?

可以,停那儿吧。Azure数据工厂支持Azure数据仓库。您可以遵循本教程:使用Azure数据工厂中的SQL Server存储过程活动转换数据

首先,您需要在数据库中创建一个存储过程。

例如,下面是删除数据库中所有表数据的过程:

代码语言:javascript
复制
IF EXISTS (SELECT * FROM sysobjects WHERE type='P' and name=N'P_DeleteAllData' ) 
    DROP PROCEDURE P_DeleteAllData 
GO 

CREATE PROCEDURE P_DeleteAllData 
AS
    EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'  
    EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'  
    EXEC sp_MSForEachTable 'DELETE FROM ?'  
    EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL' 
    EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL' 
GO 

创建存储过程活动,选择Azure数据仓库作为链接服务。

选择数据仓库中的存储过程:

添加一个触发器来调度管道执行:

希望这能有所帮助。

票数 0
EN

Stack Overflow用户

发布于 2019-09-06 15:51:35

如果我正确理解了你的问题,你需要根据一定的逻辑和标准在一年内清空你的表格。

您可以做的是创建您自己的SQL清除查询,并创建一个新的管道,以便在存储过程活动中调用它。另外,创建一个计划好的触发器,它将每年运行一次管道,比如每年的1月1日。

每年1月1日,您的管道将被触发,并调用该存储过程并执行它以清除数据。

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

https://stackoverflow.com/questions/57816064

复制
相关文章

相似问题

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