Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara lebih baik menduplikasi satu set data di SQL Server

Mengapa Anda tidak bergabung di FruitName untuk mendapatkan tabel dengan FruitId lama dan baru? Mengingat informasi akan ditambahkan pada saat yang sama.... ini mungkin bukan pilihan terbaik tetapi Anda tidak akan menggunakan siklus apa pun.

INSERT INTO BASKET(BASKETNAME)
VALUES ('COPY BASKET')

DECLARE @iBasketId int
SET @iBasketId = @@SCOPE_IDENTITY;


insert into Fruit (BasketId, FruitName)
select @iBasketId, FruitName
from Fruit 
where BasketId = @originalBasket

declare @tabFruit table (originalFruitId int, newFruitId int)

insert into @tabFruit (originalFruitId, newFruitId)
select o.FruitId, n.FruitId
from (SELECT FruitId, FruitName from Fruit where BasketId = @originalBasket) as o
join (SELECT FruitId, FruitName from Fruit where BasketId = @newBasket) as n
    on o.FruitName = n.FruitName


insert into Property (FruitId, PropertyText)
select NewFruitId, PropertyText
from Fruit f join @tabFruit t on t.originalFruitId = f.FruitId


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengapa tidak SET XACT_ABORT ON perilaku default?

  2. Kesalahan dalam SQL Server saat mengimpor file CSV meskipun varchar(MAX) digunakan untuk setiap kolom

  3. Statistik Penggunaan CPU Database SQL Server

  4. Cara Mengimpor File JSON ke Tabel SQL Server

  5. Apa yang dimaksud dengan exec sp_reset_connection di Sql Server Profiler?