sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan man bedre duplikerer et sæt data i SQL Server

Hvorfor slutter du dig ikke til FruitName for at få et bord med gamle og nye FruitId'er? Overvejer, at oplysninger vil blive tilføjet på samme tid.... det er måske ikke den bedste løsning, men du vil ikke bruge nogen cyklusser.

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. MySQL UNIQUE-nøgle virker ikke

  2. En købmandsleveringsdatamodel

  3. JDBC- kan ikke hente værdi og slette tabel i mysql-database

  4. Twitter-konkurrence ~ gemmer tweets (PHP &MySQL)