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

Afkort tabel og indsæt derefter data i samme tabel indsætter kun 1 post

Du skal flytte TRUNCATE TABLE [dbo].[at_CurrencyRates]; ud af den lagrede procedure, hvis du kalder det 289 gange for at indsætte række for række.

Hver gang du kalder den lagrede procedure sletter den alle rækkerne fra tabellen, så du altid kun ender med den ene række, du lige har indsat.

Bedre ville være at ændre den lagrede procedure til at udføre indsættelsen af ​​alle påkrævede rækker på én gang i stedet for kun én ad gangen. Du kan bruge en tabelværdiparameter til at overføre alle de ønskede rækker, så skal du blot bruge en TRUNCATE efterfulgt af en INSERT [dbo].[at_CurrencyRates] ... SELECT * FROM @TVP .



  1. Hvordan eliminerer du dobbeltberegning i SQL?

  2. Sådan vælger du enheder ved at kalde en lagret procedure med Spring Data

  3. Fejl- ORA-22835:Buffer for lille til CLOB til CHAR eller BLOB til RAW konvertering

  4. Brug af resultatet af en lagret procedure i en Select-sætning