在 SQL 中,添加一组对应于连接的值
假设我有 Table_A 包含:
ID OldValue
3 16
1 5
和 Table_B 包含
ID Value OldValue
1 2 NULL
2 4 NULL
3 8 NULL
,并且我想将 Table_A 中的 OldValues 插入到 Table_B 中,其中 ID 相等,结果为:
更新的 Table_B
ID Value OldValue
1 2 5
2 4 NULL
3 8 16
的方法可以在不使用光标的情况下执行此操作?在现实生活中,这将发生在非常大的表和游标上,众所周知,速度很慢。也许某种合并?
我使用的是 SQL Server 2008
Let's say that I have Table_A contain:
ID OldValue
3 16
1 5
and Table_B contains
ID Value OldValue
1 2 NULL
2 4 NULL
3 8 NULL
and that I want to insert OldValues from Table_A into Table_B where the IDs equal resulting in :
updated Table_B
ID Value OldValue
1 2 5
2 4 NULL
3 8 16
Is there a set based way of doing this without using a cursor? In real life this will be going on very large tables and cursors, as we all know are slow. Perhaps some sort of Merge?
I'm on SQL Server 2008
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
你想要一个“更新”
通常我把它写成一个选择,然后一旦我得到结果,我就把它转换为更新。
You want an "update from"
Generally I write this as a select, then once i get the result I convert it over to the update.
简单的:
Simple:
使用连接:
Use a join:
的确。以下是 SQL Server 2008 支持的标准 SQL:
Indeed. The following is Standard SQL that is supported on SQL Server 2008: