Is it true that SQL Server 2000, you can not insert into a table variable using exec?
I tried this script and got an error message:
EXECUTE cannot be used as a source when inserting into a table variable.
declare @tmp TABLE (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
If that true, what should I do?
N.B. – this question and answer relate to the 2000 version of SQL Server. In later versions, the restriction on
INSERT INTO @table_variable ... EXEC ...were lifted and so it doesn’t apply for those later versions.You’ll have to switch to a temp table:
From the documentation: