sql >> データベース >  >> RDS >> Sqlserver

SQLServerでデータセットをより適切に複製する方法

    FruitNameに参加して、新旧のFruitIdのテーブルを取得してみませんか?情報が同時に追加されることを考慮すると、それは最善の選択肢ではないかもしれませんが、サイクルを使用することはありません。

    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-2つのフィールドをCONCATし、WHERE句で使用します

    2. 親レコードごとに子テーブルアイテムを1つだけ選択するにはどうすればよいですか?

    3. データベース名を指定せずにPostgreSQLに接続するにはどうすればよいですか?

    4. SQLSTATE [42S01]:ベーステーブルまたはビューはすでに存在します:1050テーブル'支払い'はすでに存在します(SQL:テーブル`支払い`を作成します