sql >> Database teknologi >  >> RDS >> Sqlserver

Hvad er den mest effektive/bedste praksis at upsert 5000+ rækker uden Merge i SQL Server?

Jeg ville lave OPDATERING først, ellers opdaterer du de rækker, du lige har indsat

SELECT .. INTO #temp FROM (shredXML)

BEGIN TRAN

UPDATE ... FROM WHERE (matches using #temp)

INSERT ... SELECT ... FROM #temp WHERE NOT EXISTS

COMMIT

Jeg ville også overveje at ændre XML til en midlertidig tabel og bruge SQLBulkCopy. Vi har fundet ud af, at dette er mere effektivt end at parse XML generelt for mere end et par hundrede rækker. Hvis du ikke kan ændre dette, makulerer du så XML'en til en midlertidig tabel først?




  1. Forskelle mellem database og skema ved brug af forskellige databaser?

  2. Laravel Auth::bruger ikke fundet i anden controller

  3. hente data fra mysql og vise i form

  4. Præcis betydning af MySQL's Foreign Key 'on delete restrict'-klausul