sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan indsætter man poster baseret på den forrige indsættelse?

Prøv dette

Input

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' 

Forespørgsel

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

select * from @tblA
select * from @tblB

Output: [ For både tabel A og B]

id-navn

2   name2
4   name4
6   name6
8   name8
10  name10
12  name12
14  name14
16  name16
18  name18
20  name20

Grundlæggende indsætter jeg disse poster i TableA fra TableC, hvis id'er er lige. Og så ved at bruge Output-klausul, indsætte værdierne fra TabelA til TabelB

For mere information OUTPUT-klausul

Håber det giver mening



  1. Ændring af tmp-mappen i mysql

  2. WordPress Editor opdaterer ikke filer:Kan ikke kommunikere tilbage med webstedet for at tjekke for fatale fejl

  3. Den flerdelte identifikator kunne ikke bindes - SubQuery

  4. Oracle Dato subtraktion