Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como inserir registros com base na inserção anterior?


Tente isso

Entradas
declare @tblA table (id int,name varchar(20))
declare @tblB table (id int,name varchar(20))
declare @tblC table (id int identity,name varchar(20))
insert into @tblC 
    select 'name1' union all select 'name2' union all
    select 'name3' union all select 'name4' union all
    select 'name5' union all select 'name6' union all
    select 'name7' union all select 'name8' union all
    select 'name9' union all select 'name10' union all
    select 'name11' union all select 'name12' union all
    select 'name13' union all select 'name14' union all
    select 'name15' union all select 'name16' union all
    select 'name17' union all select 'name18' union all
    select 'name19' union all select 'name20' 

Consulta
insert @tblA 
output INSERTED.id, INSERTED.Name
into @tblB 
select 
    id,name
from @tblC 
where id % 2 = 0

select * from @tblA
select * from @tblB

Saída: [Para ambas as tabelas A e B]

nome de identificação
2   name2
4   name4
6   name6
8   name8
10  name10
12  name12
14  name14
16  name16
18  name18
20  name20

Basicamente, estou inserindo esses registros na TableA da TableC cujos ids são pares. E então usando a cláusula Output inserindo os valores de TableA para TableB

Para obter mais informações, CLÁUSULA DE SAÍDA

Espero que isso faça sentido