我正在使用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.parent
更改为model.parent_id
。 brand.name有可能发生变化,如果发生这种情况,表模型将无法链接到正确的父模式。
我希望批量执行此操作,浏览品牌中的所有记录并更新模型中的所有相关记录。
答案 0 :(得分: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
答案 1 :(得分:0)
UPDATE models
SET parent_id = brand.id
FROM brand
WHERE brand.name = models.parent