Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Tronquer le tableau puis insérer des données dans le même tableau n'insère qu'un seul enregistrement

Vous devez déplacer TRUNCATE TABLE [dbo].[at_CurrencyRates]; hors de la procédure stockée si vous l'appelez 289 fois pour insérer ligne par ligne.

Chaque fois que vous appelez la procédure stockée, elle supprime toutes les lignes de la table afin que vous ne vous retrouviez toujours qu'avec la seule ligne que vous venez d'insérer.

Le mieux serait de modifier la procédure stockée pour insérer toutes les lignes requises en une seule fois plutôt qu'une seule à la fois. Vous pouvez utiliser un paramètre de table pour transmettre toutes les lignes souhaitées, vous n'aurez alors besoin que d'un TRUNCATE suivi d'un INSERT [dbo].[at_CurrencyRates] ... SELECT * FROM @TVP .