Kort svar:nej, det kan du inte göra.
Du måste fördeklarera din temporära tabell med det exakta antalet kolumner som kommer att returneras från den lagrade processen.
Lösningen är att använda beständiga tabeller. Till exempel kan du ha en permanent tabell i din databas som heter someSPResults. Närhelst someSP ändras till att ha ett annat antal utdatakolumner, ändra formatet på someSPResults som en del av distributionen.
Sedan kan du antingen göra så här:
insert into dbo.someSPresults
exec someSP
Eller inuti someSP, kan du få resultaten att infogas direkt i someSPresults-tabellen som en normal del av exekveringen. Du måste bara se till att identifiera exakt vilka poster i someSPresults-tabellen som kom från varje exekvering av someSP, eftersom den lagrade proc kan avfyras flera gånger samtidigt, och därmed dumpa mycket data i someSPresults.