Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wstawić rekordy w oparciu o poprzednią wstawkę?

Wypróbuj to

Wejścia

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' 

Zapytanie

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

select * from @tblA
select * from @tblB

Wyjście: [ Dla obu tabel A i B]

imię i nazwisko

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

Zasadniczo wstawiam te rekordy do TableA z TableC, których identyfikatory są parzyste. A następnie za pomocą klauzuli Output wstawiając wartości z Tabeli A do Tabeli B

Aby uzyskać więcej informacji klauzula OUTPUT

Mam nadzieję, że to ma sens



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połącz SAP IQ z SQL Server

  2. Dodaj relację klucza obcego między dwiema bazami danych

  3. Cloud Migration 101:przejście z programu SQL Server na platformę Azure

  4. Co to jest prosty program lub skrypt wiersza poleceń do tworzenia kopii zapasowych baz danych serwera SQL?

  5. Problemy z wydajnością parametru wartości tabeli