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

INSERT INTO @TABLE EXEC @query z SQL Server 2000

Uwaga - to pytanie i odpowiedź dotyczą wersji 2000 SQL Server. W późniejszych wersjach ograniczenie INSERT INTO @table_variable ... EXEC ... zostały zniesione, więc nie dotyczy tych późniejszych wersji.

Musisz przełączyć się na tabelę tymczasową:

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 dokumentacji:

Zmienna tabeli zachowuje się jak zmienna lokalna. Ma dobrze zdefiniowany zakres, którym jest funkcja, procedura składowana lub partia, w której jest zadeklarowana.

W swoim zakresie zmienna table może być używana jak zwykła tabela. Może być stosowany wszędzie tam, gdzie tabela lub wyrażenie tabelowe jest używane w instrukcjach SELECT, INSERT, UPDATE i DELETE. Jednak tabeli nie można używać w następujących stwierdzeniach:

INSERT INTO table_variable EXEC stored_procedure

SELECT select_list INTO table_variable statements.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobierz identyfikator wstawionego rekordu:PHP i MS SQL SERVER

  2. W jaki sposób warunki sanitarne, które unikają pojedynczych cudzysłowów, mogą zostać pokonane przez wstrzyknięcie SQL w SQL Server?

  3. równoważne typy danych mysql

  4. Utwórz tabelę w SQL Server (T-SQL)

  5. Procedury składowane SQL OUTPUT nie działają z ExecuteReader