【发布时间】:2021-04-16 03:02:36
【问题描述】:
根据以下文档, https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-sql-database
有一个功能可以运行 post SQL 脚本。是否可以从那里运行存储过程?
我已经尝试过,它似乎没有工作,目前正在调查。
提前感谢您的信息。
【问题讨论】:
标签: azure stored-procedures azure-data-factory
根据以下文档, https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-sql-database
有一个功能可以运行 post SQL 脚本。是否可以从那里运行存储过程?
我已经尝试过,它似乎没有工作,目前正在调查。
提前感谢您的信息。
【问题讨论】:
标签: azure stored-procedures azure-data-factory
我创建了一个测试来证明存储过程可以在 Post SQL 脚本中调用。
我创建了两个表:
CREATE TABLE [dbo].[emp](
id int IDENTITY(1,1),
[name] [nvarchar](max) NULL,
[age] [nvarchar](max) NULL
)
CREATE TABLE [dbo].[emp_stage](
id int,
[name] [nvarchar](max) NULL,
[age] [nvarchar](max) NULL
)
我创建了一个复杂的程序。
create PROCEDURE [dbo].[spMergeEmpData]
AS
BEGIN
SET IDENTITY_INSERT dbo.emp ON
MERGE [dbo].[emp] AS target
USING [dbo].[emp_stage] AS source
ON (target.[id] = source.[id])
WHEN MATCHED THEN
UPDATE SET name = source.name,
age = source.age
WHEN NOT matched THEN
INSERT (id, name, age)
VALUES (source.id, source.name, source.age);
TRUNCATE TABLE [dbo].[emp_stage]
END
我会将 csv 文件复制到我的 Azure SQL 临时表 [dbo].[emp_stage],然后使用存储的 porcedure [dbo].[spMergeEmpData] 将数据从 [dbo].[emp_stage] 传输到 [dbo].[emp]。
【讨论】: