Я настраиваю задание копирования данных SQL Azure с помощью фабрики данных. Для моего источника я выбираю точные данные, которые я хочу. Для моего назначения я выбираю использовать хранимую процедуру. Я не могу перейти со страницы отображения таблиц, поскольку она сообщает, что «одна или несколько таблиц назначения были правильно настроены» Из того, что я могу сказать. Все выглядит хорошо, так как я могу вручную запустить хранимую процедуру из SQL без проблем.
Я ищу советы по устранению неполадок, связанные с решением этой проблемы, поскольку портал, по-видимому, не предоставляет больше данных, чем сама ошибка.
Дополнительный, но не связанный с этим вопрос: какая польза от того, что я выполняю задание на копирование в фабрике данных по сравнению с тем, что фабрика данных вызывает хранимую процедуру?
Я пытался выполнить хранимую процедуру через SQL. Я обнаружил одну проблему с этим, так как у меня была LastUpdatedDate в TypeTable, но на самом деле это не входное значение. После исправления я могу выполнить SP без проблем.
Выбор данных из источника
SELECT
p.EmployeeNumber,
p.EmailName,
FROM PersonFeed AS p
Создать таблицу Тип
CREATE TYPE [person].[PersonSummaryType] AS TABLE(
[EmployeeNumber] [int] NOT NULL,
[EmailName] [nvarchar](30) NULL
)
Создать пользовательскую хранимую процедуру
CREATE PROCEDURE spOverwritePersonSummary @PersonSummary [person].[PersonSummaryType] READONLY
AS
BEGIN
MERGE [person].[PersonSummary] [target]
USING @PersonSummary [source]
ON [target].EmployeeNumber = [source].EmployeeNumber
WHEN MATCHED THEN UPDATE SET
[target].EmployeeNumber = [source].EmployeeNumber,
[target].EmailName = [source].EmailName,
[target].LastUpdatedDate = GETUTCDATE()
WHEN NOT MATCHED THEN INSERT (
EmployeeNumber,
EmailName,
LastUpdatedDate)
VALUES(
[source].EmployeeNumber,
[source].EmailName,
GETUTCDATE());
END
Datafactory UI при настройке адресата в хранимой процедуре сообщает "одна или несколько таблиц назначения были правильно настроены"