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

Jak lepiej zduplikować zestaw danych w SQL Server

Dlaczego nie dołączysz do FruitName, aby otrzymać stolik ze starym i nowym FruitId? Biorąc pod uwagę, że informacje zostaną dodane w tym samym czasie.... może to nie być najlepsza opcja, ale nie będziesz używać żadnych cykli.

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. Zwróć informacje o kolumnie z serwera połączonego w programie SQL Server (przykłady T-SQL)

  2. Jak wyświetlić dane z bazy danych w polu tekstowym i zaktualizować je?

  3. Podstawy i użycie podpowiedzi NOLOCK w SQL Server

  4. Prosty sposób na transponowanie kolumn i wierszy w SQL?

  5. Jak napisać instrukcję if else w języku wyrażeń usług Reporting Services?