Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách sao chép tốt hơn một tập hợp dữ liệu trong SQL Server

Tại sao bạn không tham gia FruitName để có được một bàn với FruitId cũ và mới? Xem xét thông tin sẽ được thêm vào đồng thời .... nó có thể không phải là lựa chọn tốt nhất nhưng bạn sẽ không sử dụng bất kỳ chu kỳ nào.

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. Làm thế nào để kiểm tra xem đối tượng DateTime không được gán?

  2. Cách sử dụng IF ... THEN Logic trong SQL Server

  3. Cách tốt nhất để gọi một Dịch vụ Web từ TSQL

  4. Cách tạo dữ liệu ngẫu nhiên trong máy chủ SQL

  5. Tạo thời gian ngẫu nhiên riêng biệt trong khoảng thời gian cố định