sql >> Database >  >> RDS >> Sqlserver

Msg 8672, Level 16, State 1, Line 1 De MERGE-instructie heeft meer dan eens geprobeerd dezelfde rij BIJWERKEN of VERWIJDEREN

Dit gebeurt wanneer een doelrij overeenkomt met meer dan één bronrij.
Een MERGE-instructie kan dezelfde rij van de doeltabel niet meerdere keren BIJWERKEN/VERWIJDEREN.

De fout is vrij duidelijk, denk ik.

U heeft dubbele rijen in de brontabel. Dus voor één rij met Rownumber = X in Rows tabel zijn er meer dan één rij met Rowno = X in Temp_info tafel.

SQL-server wil graag weten welke rij van die dubbele rijen in de brontabel moet worden gebruikt voor de update op één rij in de doeltabel.

[Bewerken]

Als antwoord op uw antwoord:een van de opties is om te dupliceren, voordat u de samenvoeging uitvoert:

with cte
as
(
    select row_number() over(partition by RowNo order by DOB desc) RowNumber
    from Temp_info
)
delete cte
where RowNumber > 1

Ik gebruikte DOB als het veld dat de volgorde definieert om te weten wat de laatste is. Vervang dit veld door het veld dat u voor de bestelling wilt gebruiken.




  1. Hoe het schema van meerdere PostgreSQL-tabellen in één bewerking te wijzigen?

  2. Hoe kan ik deze opmerkingen in een MySQL-dump verwijderen?

  3. Maak verbinding met mysql op Amazon EC2 vanaf een externe server

  4. Oplossing:JSON_VALUE retourneert NULL met lange tekenreeksen (SQL-server)