Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Truncar tabela e inserir dados na mesma tabela insere apenas 1 registro


Você precisa mover TRUNCATE TABLE [dbo].[at_CurrencyRates]; fora do procedimento armazenado se você o estiver chamando 289 vezes para inserir linha por linha.

Toda vez que você chama o procedimento armazenado, ele exclui todas as linhas da tabela para que você sempre termine com apenas uma linha que acabou de inserir.

Melhor seria alterar o procedimento armazenado para fazer a inserção de todas as linhas necessárias de uma só vez, em vez de apenas uma de cada vez. Você pode usar um parâmetro com valor de tabela para passar todas as linhas desejadas, então você só precisa de um TRUNCATE seguido por um INSERT [dbo].[at_CurrencyRates] ... SELECT * FROM @TVP .