#sql-server #azure-data-factory
Вопрос:
В операции копирования ADF,в precopyscript для базы данных приемника, возможно ли выполнить сценарий предварительного копирования только на основе определенного условия ? Пожалуйста, сообщите, есть ли такой вариант.
Комментарии:
1. Вы можете элаборатировать? Какое состояние вы ищете?
2. Это что-то вроде «если», когда мы проверяем, соответствует ли только определенный параметр, а затем выполняем сценарий предварительного копирования для удаления данных. Этим параметром может быть любой параметр конвейера или любые данные поиска, полученные на предыдущем шаге.
Ответ №1:
Вы можете использовать «добавить динамическое содержимое» в сценарии предварительного копирования, чтобы использовать язык выражений ADF для ввода логики в предварительное копирование. Например, используйте оператор IF.
Комментарии:
1. Хорошо, я попробую.
2. Я вижу, что «если» можно использовать для возврата значения на основе проверяемого условия, Можно ли использовать «если» для удаления из таблицы при выполнении определенного условия ? Если есть какой-нибудь пример, пожалуйста ?
Ответ №2:
Вы можете написать выражение в сценарии предварительного копирования в разделе Настройки приемника в Copy data
действии.
- Это мои существующие данные в таблице. Здесь я хочу удалить записи с идентификатором территории=2, если условие соответствует
copy data
действию перед загрузкой новых данных.
- Ниже приведено выражение для использования переменных конвейера в выражении и использования функции конкат в выражении для включения переменных в сценарий.
Сценарий предварительного копирования:
@{concat('BEGIN
IF ( ',variables('value'),' = 10 )
delete from [dbo].[sales]
where convert(varchar,TerritoryID) = ', variables('ID'),';
END')}
- Вывод: Существующие записи с идентификатором территории = 2 удалены, и были вставлены новые записи.