sql >> Databasteknik >  >> RDS >> Sqlserver

Hur infogar man poster baserat på den föregående infogningen?

Prova detta

Ingångar

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' 

Fråga

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

select * from @tblA
select * from @tblB

Utdata: [ För både tabell A och B]

id-namn

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

I grund och botten infogar jag dessa poster i TableA från TableC vars ID är jämna. Och sedan genom att använda Output-satsen för att infoga värdena från TabellA till TabellB

För mer information OUTPUT-klausul

Hoppas detta är vettigt



  1. Så här använder du guiden Crosstab Query i Access

  2. PostgreSQL auto-inkrement ökar vid varje uppdatering

  3. mysqlimport - Importera CSV-fil i MS Windows XAMPP-miljö

  4. Hur kan jag granska alla databas- och objektbeviljande för en roll?