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

INSERT INTO @TABLE EXEC @query s SQL Server 2000

N.B. - tato otázka a odpověď se týkají verze 2000 SQL Server. V novějších verzích omezení na INSERT INTO @table_variable ... EXEC ... byly zrušeny, a tak to neplatí pro tyto pozdější verze.

Budete se muset přepnout na dočasnou tabulku:

CREATE TABLE #tmp (code varchar(50), mount money)
DECLARE @q nvarchar(4000)
SET @q = 'SELECT coa_code, amount FROM T_Ledger_detail'

INSERT INTO  #tmp (code, mount)
EXEC sp_executesql (@q)

SELECT * from #tmp

Z dokumentace:

Proměnná tabulky se chová jako lokální proměnná. Má dobře definovaný rozsah, což je funkce, uložená procedura nebo dávka, ve které je deklarována.

V rámci svého rozsahu lze proměnnou tabulky používat jako běžnou tabulku. Lze jej použít všude tam, kde je v příkazech SELECT, INSERT, UPDATE a DELETE použita tabulka nebo tabulkový výraz. Tabulka však nesmí být použita v následujících prohlášeních:

INSERT INTO table_variable EXEC stored_procedure

SELECT select_list INTO table_variable statements.



  1. Připojení Visual COBOL k MySQL

  2. MySQL seskupit podle a seřadit podle

  3. Jak naplnit kalendářní tabulku v Oracle?

  4. Průvodce Pgpool pro PostgreSQL:Část první