【问题标题】:Execute stored procedure in Azure Data Platform - Post SQL Scripts在 Azure 数据平台中执行存储过程 - 发布 SQL 脚本
【发布时间】: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


    【解决方案1】:

    我创建了一个测试来证明存储过程可以在 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]

    在 Post SQL 脚本字段中输入存储过程名称 exec [dbo].[spMergeEmpData]

    我调试成功。

    我可以看到数据都在TABLE [dbo].[emp]

    【讨论】:

    • 谢谢!这很有帮助。让我试着确认一下。
    • 谢谢。测试并确认。将此帖子标记为答案。感谢您的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多