簡體   English   中英

在SQL中將行從一個復制到另一個表

[英]Copying rows from one into another table in SQL

我有兩個數據庫-db1和db2,如下所示:

db1..Model

ModelId ModelName
0       BMW

db1..Category

CategoryId  CategoryName
0           Undercarriage
1           Engine

db1..ItemList

ModelId CategoryId      DataId  Name
0       0               1       cap
0       0               2       cushion
0       0               3       spacer
0       1               1       cushion

然后,我將模型和類別從db1復制到db2:

db2..Model

Id  ModelName
1   BMW

db2..Category

Id  CategoryName
1   Undercarriage
2   Engine

我如何將記錄寫到db2..Item中,以便行應像這樣:

Id  ModelId     CategoryId  DataId  Name
1   1           1           1       cap
2   1           1           2       cushion
3   1           1           3       spacer
4   1           2           1       cushion 

假設db1和db2在同一台服務器上,則應如下所示:

INSERT INTO db2.dbo.Item (ModelId, CategoryId, DataId, Name)
SELECT
    (
        SELECT Model.Id
        FROM db2.dbo.Model
        WHERE db2.dbo.Model.ModelName = (
            SELECT Model.ModelName
            FROM db1.dbo.Model
            WHERE Model.ModelId = ItemList.ModelId
        )
    )
    (
        SELECT Category.Id
        FROM db2.dbo.Category
        WHERE db2.dbo.Category.CategoryName = (
            SELECT Category.CategoryName
            FROM db1.dbo.Category
            WHERE Category.CategoryId = ItemList.CategoryId
        )
    )
    DataId,
    Name
FROM db1.dbo.ItemList

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM