sql >> Databasteknik >  >> RDS >> Sqlserver

Trunkera tabell och infoga sedan data i samma tabell infogar bara 1 post

Du måste flytta TRUNCATE TABLE [dbo].[at_CurrencyRates]; ut ur den lagrade proceduren om du anropar den 289 gånger för att infoga rad för rad.

Varje gång du anropar den lagrade proceduren tar den bort alla rader från tabellen så att du alltid bara hamnar på den ena raden som du precis infogade.

Bättre skulle vara att ändra den lagrade proceduren för att infoga alla nödvändiga rader på en gång snarare än bara en åt gången. Du kan använda en tabellvärderad parameter för att skicka in alla önskade rader, då behöver du bara en TRUNCATE följt av en INSERT [dbo].[at_CurrencyRates] ... SELECT * FROM @TVP .



  1. Skapa tabell (struktur) från befintlig tabell

  2. Lär dig hur du prestandajusterar Microsoft SQL Server

  3. Så här SQL Välj en en till många relation och slå samman utdata

  4. Kan inte helt enkelt använda PostgreSQL-tabellnamn (relation finns inte)