sql >> Databáze >  >> RDS >> Sqlserver

Jak vložit záznamy na základě předchozího vložení?

Zkuste toto

Vstupy

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' 

Dotaz

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

select * from @tblA
select * from @tblB

Výstup: [ Pro obě tabulky A a B]

id name

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

V zásadě vkládám tyto záznamy do TableA z TableC, jejichž ID jsou sudá. A pak pomocí klauzule Output vložením hodnot z TableA do TableB

Další informace Ustanovení o VÝSTUPU

Doufám, že to dává smysl



  1. Vložení/aktualizace Oracle Trigger

  2. 2 způsoby, jak zobrazit seznam všech funkcí v MariaDB

  3. Při pokusu o instalaci Perl-Mysql DBD nelze najít mysql_config

  4. Problém se zobrazením výsledků dotazu