Mam dane, pochodzące w jedną tabelę z kilku innych tabel, powiedzmy: Table_A Następnie mam zapisany proces scalania, który pobiera dane z tabeli A, łączy je z tabelą B.
Jednak coś chyba jest nie tak. Jeśli усекаю i pobierania danych, to działa dobrze, ale jeśli nie усекаю i nie zgrywam, ale po prostu mam zapytanie co godzinę, otrzymuję komunikat o błędzie, w którym czytamy:
Msg 8672, Poziom: 16, Stan: 1, Procedura Merge_Table_A, Wiersz 4 [Początkowa Linia Pakietu 0] Instrukcja MERGE kilka razy próbowałam ZAKTUALIZOWAĆ lub USUNĄĆ jeden i ten sam ciąg. Dzieje się tak, gdy docelowa linia pokrywa się z więcej niż jednej źródłowego. Instrukcja MERGE nie może AKTUALIZOWAĆ lub USUWAĆ jeden i ten sam wiersz w tabeli docelowej kilka razy. Sprawdź ofertę ON, aby upewnić się, że docelowa wiersz nie więcej niż jednej oryginalnej linii, lub użyj klauzula GROUP BY do grupy oryginalnych wierszy.
Jak mogę przezwyciężyć?
Chcę, żeby u mnie była możliwość stopniowo pobierać dane i nie obcięciu obciążenia, ale w tym samym czasie mieć zapisany proces, który aktualizuje, wstawia lub nie dba o to, czy istnieje już linia.