Musisz przenieść TRUNCATE TABLE [dbo].[at_CurrencyRates];
z procedury składowanej, jeśli wywołujesz ją 289 razy, aby wstawić wiersz po wierszu.
Za każdym razem, gdy wywołujesz procedurę składowaną, usuwa ona wszystkie wiersze z tabeli, więc zawsze otrzymasz tylko jeden wiersz, który właśnie wstawiłeś.
Lepiej byłoby zmienić procedurę składowaną, aby wstawić wszystkie wymagane wiersze za jednym razem, a nie tylko po jednym na raz. Możesz użyć parametru o wartości tabeli, aby przekazać wszystkie żądane wiersze, wtedy potrzebujesz tylko TRUNCATE
po którym następuje INSERT [dbo].[at_CurrencyRates] ... SELECT * FROM @TVP
.