sql-server - 用 SQL Server 中另一个表的列更新表的列
问题描述
我正在尝试将列从一个表更新到不同数据库的另一个表。
我在堆栈上搜索,但找到了 PostgreSQL 和 SQLite 的答案。这些代码在 SQL Server 中不适合我。
说,
- D1,D2 是两个不同的数据库
- T1 是表
- C1,C2,C3 是中的列
T1
我想像这样更新
UPDATE T1
SET D2.T1.C1 = D1.T1.C1
WHERE D2.T1.C2 = D1.T1.C2
除该where
子句外的所有内容都可以正常工作。
这是我尝试的一些代码:
use DB2
GO
UPDATE TABLE1
SET COL1 = (SELECT COL1 FROM DB1.dbo.TABLE1)
WHERE COL2 = DB1.dbo.TABLE1.COL2
我该如何写这个查询?
注意: D1 和 D2 相同。两者都具有完全相同的架构。只是名称和数据不同。两个数据库都在同一台服务器上。
解决方案
SQL Server 支持更新连接语法:
UPDATE t1
SET COL1 = t2.COL1
FROM TABLE1 D1.t1
INNER JOIN TABLE2 D2.t2
ON t1.COL2 = t2.COL2;
实际上,您当前的方法可能有效,但您应该尝试将其更改为:
UPDATE TABLE1 D1.t1
SET COL1 = (SELECT t2.COL1 FROM TABLE2 D2.t2 WHERE T1.COL2 = T2.COL2);
推荐阅读
- angular11 - Angular 11:Dexie 动态创建的商店,在对表执行搜索时出现 InvalidTableError
- java - 什么是默认的 Java GC 参数
- postgresql - 从 postgres 函数返回多个输出变量
- r - 校正多个估算数据集中的异方差
- workflow - NetSuite - 将订单自定义工作流更改状态转移到拒绝
- javascript - 值需要根据下拉列表中的选择进行更改
- java - Java JOOQ 与 SQL Server:缓存查询
- typo3 - TYPO3 画廊与灯箱
- vue.js - 图表js中分组垂直条形图中不同颜色的数据列标签
- javascript - 如何使用 js r jquery 在选项卡屏幕上为反应组件启用在网页中滑动