Вы хотите выводить данные, которые вы только что вставили? Если это так, и если вы используете версию SQL Server до для SQL Server 2005, то вы можете вставить нужные значения во временную таблицу следующим образом:
Create Table #FooTemp ( FooData ... )
Insert #FooTemp( FooData )
Select FooData
From FooTable
Insert Bar( BarData )
Select FooData
From #FooTemp
Select FooData
From #FooTemp
Недостатком этого подхода является то, что он будет вызывать перекомпиляцию хранимой процедуры при каждом запуске из-за временной таблицы.
Если вы используете SQL Server 2000+, вы можете сделать то же самое, что и выше, только в табличной переменной:
Declare @FooTemp Table ( FooData ... )
Insert @FooTemp( FooData )
Select FooData
From FooTable
Insert Bar( BarData )
Select FooData
From @FooTemp
Select FooData
From @FooTemp
Если вы используете SQL Server 2005+, вы можете использовать предложение OUTPUT следующим образом:
Insert Bar( BarData )
OUTPUT inserted.BarData
Select FooData
From FooTable