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

INSERT INTO @TABLE EXEC @query със SQL Server 2000

N.B. - този въпрос и отговор се отнасят до версията на SQL Server от 2000 г. В по-късни версии ограничението за INSERT INTO @table_variable ... EXEC ... бяха премахнати и затова не важи за тези по-късни версии.

Ще трябва да превключите към временна таблица:

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

От документацията:

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

В рамките на своя обхват променлива на таблица може да се използва като обикновена таблица. Може да се прилага навсякъде, където се използва израз на таблица или таблица в изрази SELECT, INSERT, UPDATE и DELETE. Въпреки това таблицата може да не се използва в следните изрази:

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. Родната библиотека sqljdbc_auth.dll вече е заредена в друг зареждач на класове

  2. Добавете IIS 7 AppPool Identities като входове в SQL Server

  3. Какво представлява предаването на параметри към SQL и защо ми е необходимо?

  4. Съхранение на двоични типове данни в SQL Server

  5. Как да конвертирате колоната за времеви отпечатъци на SQL Server във формат дата и час