我正在使用Data Factory设置SQL Azure复制数据作业。对于我的来源,我正在选择所需的确切数据。对于我的目的地,我选择使用存储过程。我无法从表映射页面继续前进,因为它报告“一个或多个目标表已正确配置”。据我所知。一切看起来不错,因为我可以从SQL手动运行存储过程而没有问题。
我正在寻找有关如何解决此问题的疑难解答建议,因为门户似乎没有提供比错误本身更多的数据。
另一个但无关的问题:与在数据工厂中调用存储过程相比,在数据工厂中执行复制作业有什么好处?
我尝试通过SQL执行存储过程。我发现了一个问题,因为我在TypeTable中有LastUpdatedDate,但实际上它不是输入值。修复之后,我可以执行SP了。
从源中选择数据
SELECT
p.EmployeeNumber,
p.EmailName,
FROM PersonFeed AS p
创建表格类型
CREATE TYPE [person].[PersonSummaryType] AS TABLE(
[EmployeeNumber] [int] NOT NULL,
[EmailName] [nvarchar](30) NULL
)
创建UserDefined存储过程
CREATE PROCEDURE spOverwritePersonSummary @PersonSummary [person].[PersonSummaryType] READONLY
AS
BEGIN
MERGE [person].[PersonSummary] [target]
USING @PersonSummary [source]
ON [target].EmployeeNumber = [source].EmployeeNumber
WHEN MATCHED THEN UPDATE SET
[target].EmployeeNumber = [source].EmployeeNumber,
[target].EmailName = [source].EmailName,
[target].LastUpdatedDate = GETUTCDATE()
WHEN NOT MATCHED THEN INSERT (
EmployeeNumber,
EmailName,
LastUpdatedDate)
VALUES(
[source].EmployeeNumber,
[source].EmailName,
GETUTCDATE());
END
在存储过程中设置目标时,数据工厂用户界面报告“已正确配置一个或多个目标表”
答案 0 :(得分:0)
我相信使用“复制数据”时用户界面已损坏。我能够直接映射到表以创建复制作业,然后手动编辑JSON,一切正常。也许用户界面是新的,这解释了为什么所有支持文档仅只引用json吗?在玩了更多之后,UI似乎将表类型视为schema.type,但是由于某种原因它删除了模式。只需在JSON文件中进行简单的编辑即可对其进行纠正。