在 Azure 数据平台中执行存储过程 - Post SQL 脚本
Execute stored procedure in Azure Data Platform - Post SQL Scripts
根据以下文档,
https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-sql-database
运行 post SQL 脚本有一个功能。是否可以从那里 运行 存储过程?
我已经试过了,它似乎没有用,目前正在调查中。
提前感谢您的信息。
我创建了一个测试来证明可以在 Post SQL 脚本中调用存储过程。
我创建了两个 table:
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 staging table [dbo].[emp_stage]
,然后使用存储过程 [dbo].[spMergeEmpData]
将数据从 [dbo].[emp_stage]
传输到[dbo].[emp]
.
在 Post SQL 脚本字段中输入存储过程名称 exec [dbo].[spMergeEmpData]
。
我调试成功了。
我可以看到数据都在TABLE [dbo].[emp]
.
根据以下文档,
https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-sql-database
运行 post SQL 脚本有一个功能。是否可以从那里 运行 存储过程?
我已经试过了,它似乎没有用,目前正在调查中。
提前感谢您的信息。
我创建了一个测试来证明可以在 Post SQL 脚本中调用存储过程。
我创建了两个 table:
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 staging table [dbo].[emp_stage]
,然后使用存储过程 [dbo].[spMergeEmpData]
将数据从 [dbo].[emp_stage]
传输到[dbo].[emp]
.
在 Post SQL 脚本字段中输入存储过程名称 exec [dbo].[spMergeEmpData]
。
我调试成功了。
我可以看到数据都在TABLE [dbo].[emp]
.