2011-02-06 38 views
0

我正在使用SQL Server 2008 R2。我從excel導入了2個表格,我想將它們鏈接在一起。我是這樣的:批量更新在主表記錄上設置的子表記錄

表從Excel導入

brand (nvarchar(20) name) 
models (nvarchar(20) parent, nvarchar(50 name)) 

表後,我的賠罪

brand (int ident id, nvarchar(20) name, tinyint status) 
models (int ident id, int parent_id, 
        nvarchar(20) parent, nvarchar(50) name, tinyint status) 

正如你看到的,我想用ID使用PARENT_ID表品牌錶款鏈接。

選擇是好的,我已經做到了。

我需要的是創建批量更新,將品牌id放入模型parent_id中。

條件是:

set models.parent_id = brand.id where brand.name = model.parent 

我希望這是顯而易見的。基本上我想改變鏈接字段model.parentmodel.parent_id。 brand.name可能會發生變化,如果發生這種情況,表格模型將無法鏈接到正確的父級。

而且我想大批量地完成所有品牌記錄並更新模型中的所有相關記錄。

回答

3
UPDATE 
    m 
SET 
    parent_id = b.id 
FROM 
    models m 
    JOIN 
    brand b ON b.name = m.parent 

我倒是他們以爲你要刪除models.parent

ALTER TABLE models DROP COLUMN parent 
0
UPDATE models 
SET parent_id = brand.id 
FROM brand 
WHERE brand.name = models.parent