Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dynamicznie twórz tabelę tymczasową na podstawie wyników z SP

Krótka odpowiedź:nie, nie możesz tego zrobić.

Musisz wstępnie zadeklarować swoją tabelę tymczasową z dokładną liczbą kolumn, które zostaną zwrócone z przechowywanej procedury.

Obejściem tego problemu jest użycie trwałych tabel. Na przykład możesz mieć w bazie danych stałą tabelę o nazwie someSPResults. Za każdym razem, gdy someSP zostanie zmieniona, aby mieć inną liczbę kolumn wyjściowych, zmień format niektórychSPResults w ramach wdrażania.

Następnie możesz to zrobić:

insert into dbo.someSPresults
exec someSP

Lub wewnątrz someSP wyniki można wstawić bezpośrednio do tabeli someSPresults jako normalną część wykonania. Musisz tylko upewnić się, że dokładnie określiłeś, które rekordy w tabeli someSPresults pochodzą z każdego wykonania someSP, ponieważ ten przechowywany proces może być uruchamiany wiele razy jednocześnie, tym samym zrzucając dużo danych do someSPresults.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Scal wiele wierszy w jeden wiersz

  2. nie jest rozpoznawaną nazwą funkcji wbudowanej

  3. Funkcja DECODE() w SQL Server

  4. Zaktualizuj wiele kolumn w SQL

  5. Jak usunąć puste wiersze z wyniku zapytania sql?