SQL Server使用一个表中的列更新另一个表中的列
这里没有问题。我在SQLServer2012中有一个数据库,可以访问另一个MySQL数据库,其中包含我想提取的信息 我想更新一个表示工作站数量的列,该信息显示在另一个数据库中。我想构造一个查询,更新每个数据库中型号匹配的所有项目的数量 我将包括两个select语句来演示我希望使用的内容 我想从另一个数据库中提取数据SQL Server使用一个表中的列更新另一个表中的列,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,这里没有问题。我在SQLServer2012中有一个数据库,可以访问另一个MySQL数据库,其中包含我想提取的信息 我想更新一个表示工作站数量的列,该信息显示在另一个数据库中。我想构造一个查询,更新每个数据库中型号匹配的所有项目的数量 我将包括两个select语句来演示我希望使用的内容 我想从另一个数据库中提取数据 SELECT * FROM OPENQUERY(S3MONITOR, 'SELECT count(BuildDriver) AS ''# of Workstations'', B
SELECT *
FROM OPENQUERY(S3MONITOR,
'SELECT count(BuildDriver) AS ''# of Workstations'', BuildDriver AS ''Workstation Model''
FROM workstation
GROUP BY BuildDriver')
这就产生了这个结果
我要更新的数据库
SELECT NumOfDevices, Model
FROM dbo.Currency
INNER JOIN dbo.SubCategory
ON Currency.SubCategoryId = SubCategory.SubCategoryId
WHERE SubCategory.SubCategoryName = 'WorkStation';
这就产生了这个结果
这些模型将在我的数据库中更新,以确保模型名称彼此对应,但在此期间,我想使用M93z测试一个查询。那么,在模型名称相同的情况下,使用其他数据库中的工作站更新数据库中的NUMOF设备的最理想方式是什么呢
很抱歉,如果这是一个明显的问题,我仍然是一个SQLNoob,当涉及到这类事情时,这对我来说仍然不是直观的
编辑:最终目标是通过SQL Server代理计划的作业,每晚例行更新所有工作站数量,但我会跨越这一桥梁,当我遇到它时,我实际上有一些信心,一旦找到它,我就能够将查询解决方案应用于此作业,但我希望在它发生变化时包含此信息您的任何建议。您可以在update语句中使用join
with newvals as (
SELECT *
FROM OPENQUERY(S3MONITOR,
'SELECT count(BuildDriver) AS ''# of Workstations'', BuildDriver AS ''Workstation Model''
FROM workstation
GROUP BY BuildDriver'
) oq
)
update c
set NumOfDevices = newvals.num_workstations
from dbo.Currency c join
dbo.SubCategory sc
on c.SubCategoryId = sc.SubCategoryId join
newvals
on newvals.model = c.model
where sc.SubCategoryName = 'WorkStation';
注意:这将更新表中已有的值。如果还想添加新行,可能需要使用“合并”。如果是这种情况,请问另一个问题,因为这个问题是专门关于更新的。Beauty,我午餐回来后会带着这个进行试驾。不,我不想添加新行或任何东西,所以看起来好像你直接回答了我的问题。非常感谢你!除了更改一些列名外,这种方法非常有效。再次感谢你。