if object_id('tempdb..#table1') IS NOT NULL DROP TABLE #table1;
if object_id('tempdb..#table2') IS NOT NULL DROP TABLE #table2;
if object_id('tempdb..#table3') IS NOT NULL DROP TABLE #table3;
create table #table1 (col1 int,col2 varchar(30), col3 varchar(30));
insert into #table1 values (10,'martin','teacher');
insert into #table1 values (20,'tom','trainer');
insert into #table1 values (30,'schrof','student');
create table #table2(t_col1 int identity(1,1), t_col2 VARCHAR(30), [table1_col3] varchar(30));
create table #table3 (f_col1 int identity(1,1), f_col2 INT, f_col3 VARCHAR(30), f_col4 VARCHAR(30), [table1_col3] varchar(30));
--- here in table3.f_col4 i need to store the value of table1.col3
--- will output clause work in this scenario?
--- You cannot add random columns from the source table to the OUTPUT column list,
--- but you could add a column for it to #Table2 as follows
--- You could of course remove it later.
insert into #table2 (t_col2, [table1_col3])
output inserted.t_col1, inserted.t_col2, inserted.[table1_col3]
into #table3 (f_col2, f_col3, [table1_col3])
select col2, col3 from #table1 t;
SELECT * FROM #table2
SELECT * FROM #table3
For fast, accurate and documented assistance in answering your questions, please read this article.
Understanding and using APPLY, (I) and (II) Paul White
Hidden RBAR: Triangular Joins / The "Numbers" or "Tally" Table: What it is and how it replaces a loop Jeff Moden