sql >> Databáze >  >> RDS >> Sqlserver

Dynamicky vytvořte dočasnou tabulku na základě sady výsledků z SP

Krátká odpověď:ne, to nemůžete.

Musíte předem deklarovat svou dočasnou tabulku s přesným počtem sloupců, které budou vráceny z uloženého procesu.

Řešením je použití trvalých tabulek. Například můžete mít ve své databázi trvalou tabulku s názvem someSPResults. Kdykoli se změní someSP tak, aby měl jiný počet výstupních sloupců, změňte formát některýchSPResults jako součást nasazení.

Pak můžete buď udělat toto:

insert into dbo.someSPresults
exec someSP

Nebo uvnitř someSP můžete nechat výsledky vložit přímo do tabulky someSPresults jako normální součást provádění. Jen se musíte ujistit, že přesně identifikujete, které záznamy v tabulce someSPresults pocházejí z každého spuštění someSP, protože tento uložený proces by mohl být spuštěn vícekrát současně, čímž by se do someSPresults uložilo velké množství dat.



  1. SQL skript pro vytvoření vkládacího skriptu

  2. Výběr toho, kde více podmínek odpovídá SafeMysql

  3. Mysql vyberte kde pole v řetězci csv

  4. Co znamená INTERVAL=0 v Oracle Schedular?