IF WE WANT TO SELECT TOP N ROWS FROM A TABLE , WE USE THE FETCH NEXT SELECT * FROM table1 ---//First m rows ignore first n rows ORDER BY id OFFSET n ROWS FETCH NEXT m ROWS ONLY if n=0, m=10 then first 10 rows if n=10, m=10 then first 10 rows start from 11th row Row_number() SELECT ROW_NUMBER() OVER(order by db.id) Insertion Simultaneouly in temp table with output clause DECLARE @table1 table ( Id int, name nvarchar(50) ); DECLARE @table2 table ( Id int, name nvarchar(50) ); INSERT INTO @table2 OUTPUT INSERTED.* INTO @table1 select top 10 id, name from FinalTable SELECT * FROM @table2; SELECT * FROM @table1;