sql >> Database >  >> RDS >> Sqlserver

Hoe u een set gegevens beter kunt dupliceren in SQL Server

Waarom sluit je je niet aan bij de FruitName om een ​​tafel te krijgen met oude en nieuwe FruitId's? Aangezien er tegelijkertijd informatie zou worden toegevoegd... is dit misschien niet de beste optie, maar u zult geen fietsen gebruiken.

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. PHP - Gegevens bijwerken naar MySQL wanneer u op een keuzerondje klikt

  2. Hoe meerdere rijen te selecteren op primaire sleutel met meerdere kolommen in MySQL?

  3. Gegevens uit een andere tabel invoegen met een lus in mysql

  4. SQL Server (TSQL) - Is het mogelijk om EXEC-statements parallel te zetten?