sql >> Database >  >> RDS >> Sqlserver

Dynamisch een tijdelijke tabel maken op basis van de resultatenset van SP

Kort antwoord:nee, dat kan niet.

U moet uw tijdelijke tabel vooraf declareren met het exacte aantal kolommen dat wordt geretourneerd door het opgeslagen proces.

De oplossing is om persistente tabellen te gebruiken. U kunt bijvoorbeeld een permanente tabel in uw database hebben met de naam someSPResults. Wanneer someSP wordt gewijzigd om een ​​ander aantal uitvoerkolommen te hebben, wijzigt u het formaat van someSPResults als onderdeel van de implementatie.

Dan kun je dit doen:

insert into dbo.someSPresults
exec someSP

Of u kunt binnen someSP de resultaten rechtstreeks in de someSPesults-tabel laten invoegen als een normaal onderdeel van de uitvoering. Je moet er alleen voor zorgen dat je precies identificeert welke records in de someSPresults-tabel afkomstig zijn van elke uitvoering van someSP, omdat dat opgeslagen proces meerdere keren tegelijk kan worden gestart, waardoor veel gegevens in someSPresults worden gedumpt.



  1. Rijen omzetten in kolommen in SQL Server 2005

  2. Wat is het verschil tussen mysqli_affected_rows en mysqli_num_rows?

  3. Recursieve query in SQL Server

  4. SQL - Geavanceerde verwijdering van duplicaten met ID NOT IN