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

Jak lépe duplikovat sadu dat na SQL Server

Proč se nepřipojíte na FruitName a získáte stůl se starými a novými FruitId's? Vzhledem k tomu, že informace by byly přidány ve stejnou dobu... nemusí to být nejlepší volba, ale nebudete používat žádné cykly.

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. Oprava „ERROR 1250 (42000):Tabulku „…“ z jednoho z SELECT nelze použít v klauzuli ORDER“ v MariaDB

  2. Zamíchejte řetězec pomocí mysql/sql

  3. Je to možné s mysql?

  4. Jak zálohovat/obnovit MySQL/MariaDB a PostgreSQL pomocí nástrojů „Automysqlbackup“ a „Autopostgresqlbackup“