批量更新主表记录上设置的子表记录

发布于 2024-10-16 05:55:56 字数 793 浏览 2 评论 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)

如您所见,我想将使用 Parent_id 的表模型链接到使用 id 的表品牌。

选择就可以了,我已经这么做了。

我需要的是创建批量更新,将品牌 id 放入模型 Parent_id 中。

条件是:

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

我希望它是明确的。基本上我想将链接字段 model.parent 更改为 model.parent_id。 Brand.name 有可能发生更改,如果发生这种情况,表模型将无法链接到正确的父级。

我想批量执行此操作,以浏览品牌中的所有记录并更新模型中的所有相关记录。

I am using SQL Server 2008 R2. I have imported 2 tables from excel and I want to link them together. I looks like this:

Tables imported from Excel

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

Tables after my amends

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

As you can see I'd like to link table models using parent_id to table brand using id.

Select is ok, I have done that.

What I need is create bulk update which would put brand id into model parent_id.

Conditions are:

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

I hope it is clear. Basically I want to change linking field model.parent to model.parent_id. There is a possibility that brand.name can change and if that happens table models would be unable to link to correct parent.

And I want to do that in bulk, to go through all the records in brand and update all relevant records in models.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一笔一画续写前缘 2024-10-23 05:55:56
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
UPDATE
   m
SET
  parent_id = b.id
FROM
   models m
   JOIN
   brand b ON b.name = m.parent

I'd them assume you want to remove models.parent

 ALTER TABLE models DROP COLUMN parent
℡Ms空城旧梦 2024-10-23 05:55:56
UPDATE models
SET parent_id = brand.id
FROM brand
WHERE brand.name = models.parent
UPDATE models
SET parent_id = brand.id
FROM brand
WHERE brand.name = models.parent
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文