#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.
Комментарии:
1. Спасибо! Это очень полезно. Позвольте мне попробовать и подтвердить.
2. Спасибо. Проверено и подтверждено. Пометил этот пост как ответ. Спасибо за вашу информацию.