Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Динамично създаване на временна таблица въз основа на набор от резултати от SP

Кратък отговор:не, не можете да направите това.

Трябва предварително да декларирате вашата временна таблица с точния брой колони, които ще бъдат върнати от съхранената процедура.

Заобиколното решение е да използвате постоянни таблици. Например, можете да имате постоянна таблица във вашата база данни, наречена someSPResults. Всеки път, когато someSP се промени, за да има различен брой изходни колони, променете формата на someSPResults като част от внедряването.

След това можете да направите следното:

insert into dbo.someSPresults
exec someSP

Или вътре в someSP, можете да накарате резултатите да бъдат вмъкнати директно в таблицата someSPresults като нормална част от изпълнението. Просто трябва да се уверите, че точно идентифицирате кои записи в таблицата someSPresults идват от всяко изпълнение на someSP, тъй като тази съхранена процедура може да бъде задействана няколко пъти едновременно, като по този начин изхвърля много данни в 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. Подреждане по година, месец заедно с кумулативната сума

  2. Изпълнение на съхранена процедура с помощта на Windows Task Scheduler

  3. Извличане на сложни обекти чрез необработена SQL заявка в Entity Framework

  4. SQL Server - Кумулативна сума, която се нулира, когато се срещне 0

  5. Възможно ли е да се промени системната съхранена процедура?