Я нашел довольно хорошую статью, в которой подробно рассказывается, как обмениваться данными таблиц, и упоминается, что совместное использование данных таблиц в стиле INSERT EXEC (http://www.sommarskog.se/share_data.html#INSERTEXEC) имеет недостаток, заключающийся в том, что его нельзя вкладывать?
Другими словами [по крайней мере в SQL Server 2005], в псевдокоде ниже INSERT EXEC PROC1 произойдет ошибка во время выполнения. Мне было интересно, если кто-нибудь знает, почему это так.
CREATE PROC1
AS
--Fill table variable with data from somewhere
INSERT INTO @tbl EXECUTE spI_Return_Data
-- Do some stuff to the data
-- 'Return' it
SELECT * FROM @tbl
GO
CREATE PROC2
AS
--Fill table variable with data from PROC1
INSERT INTO @tbl EXECUTE PROC1
-- Do some stuff to the data
-- 'Return' it
SELEC * FROM @tbl
GO