我有一个数据工厂管道,该管道正在从SQL Server中获取数据并将其复制到表存储中:
Azure Sql Server View --> Table Storage Cache
此步骤基于SQL Server视图中的REPLACE
对特定行进行guid
。
如果从源视图中删除一条记录,我们如何从表存储中删除同一条记录?
答案 0 :(得分:0)
在“复制活动”期间,我们无法对表数据进行操作。数据工厂不支持此操作。
我创建了一个数据管道,用于将数据从SQL Server复制到表存储以进行测试。在开始“活动复制”之前,您可以根据需要删除或插入记录。您可以在数据工厂中预览数据。复制活动发布并完成后,这意味着您的数据已复制到表存储中。
如果您确实需要删除表存储中的同一记录,则方法之一是可以登录Azure门户并使用“存储资源管理器(预览)”删除记录:
希望这会有所帮助。
答案 1 :(得分:-1)
这是一个提示-我已经在生产环境中运行了很多年的代码...的想法是让源对已删除的记录使用时间戳(或更简单的标志),然后让MERGE尊重它。
>CREATE PROCEDURE [DataFactory].[MergeCompany]
(
@Company [DataFactory].[CompanyType] READONLY
)
AS
BEGIN
MERGE INTO [Company] AS TGT
USING @Company As SRC
ON TGT.pk = SRC.pk
--
WHEN MATCHED AND SRC.aud_delete_date IS NOT NULL
THEN DELETE
--
WHEN MATCHED AND SRC.aud_delete_date IS NULL
THEN UPDATE SET
TGT.comp_number = SRC.comp_number
,TGT.comp_name = SRC.comp_name
,TGT.aud_update_date = SRC.aud_update_date
,TGT.aud_create_date = SRC.aud_create_date
--
WHEN NOT MATCHED BY TARGET
THEN INSERT(
pk
,comp_number
,comp_name
,aud_update_date
,aud_create_date
)
VALUES(
SRC.pk
,SRC.comp_number
,SRC.comp_name
,SRC.aud_update_date
,SRC.aud_create_date
)
; -- Required semicolon
END
GO