Выполнение хранимой процедуры в платформе данных Azure — Сценарии Post SQL

#azure #stored-procedures #azure-data-factory

Вопрос:

Основываясь на приведенной ниже документации, https://docs.microsoft.com/en-us/azure/data-factory/connector-azure-sql-database
введите описание изображения здесь

Существует функция для запуска сценария post SQL. Можно ли оттуда запустить хранимую процедуру?

Я пробовал, похоже, это не работает и в настоящее время расследуется.

Заранее спасибо за вашу информацию.

Ответ №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
) 

 

Я создал процедуру sotred.

 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-файл в свою промежуточную таблицу SQL Azure [dbo].[emp_stage] , а затем использую сохраненный porcedure [dbo].[spMergeEmpData] для передачи данных из [dbo].[emp_stage] в [dbo].[emp] .

введите описание изображения здесь

Введите имя хранимой процедуры exec [dbo].[spMergeEmpData] в поле Post SQL scripts. введите описание изображения здесь

Я успешно отладил. введите описание изображения здесь

Я вижу, что все данные приведены в ТАБЛИЦЕ [dbo].[emp] .
введите описание изображения здесь

Комментарии:

1. Спасибо! Это очень полезно. Позвольте мне попробовать и подтвердить.

2. Спасибо. Проверено и подтверждено. Пометил этот пост как ответ. Спасибо за вашу информацию.