У меня возникла ситуация, когда у меня есть процедура хранения, содержащая оператор слияния. Процедура захватывает данные из таблицы A и использует оператор слияния для обновления определенных записей в таблице B. Процедура работает нормально, но иногда есть экземпляры, где в таблице указаны повторяющиеся записи. Процедура хранилища находится в пакете с набором уведомлений об ошибках и пакет работает в задании, и он дает ошибку ниже. Есть ли способы отладить это? Как некоторые, где в процедуре магазина говорят, что если она дает ошибку, тогда вставьте исходные данные в таблицу? Любой вход оценивается.Ошибка слияния Ошибка отладки
Благодаря
Ошибка:
failed with the following error: "The MERGE statement attempted to UPDATE or DELETE the same row more than once. This happens when a target row matches more than one source row. A MERGE statement cannot UPDATE/DELETE the same row of the target table multiple times. Refine the ON clause to ensure a target row matches at most one source row, or use the GROUP BY clause to group the source rows.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
Посмотрите на DISTINCT или агрегировать строки в таблице А, до слияния так соединяющий ключ (ы) заканчивает каждый, идентифицируя уникальный ряд. – VBlades