表A:
ServerName, InstanceName, GroupName, Value1 (Some servers have more than 1 instance, therefore some servers are listed more than once) (400 records)
表B:
ServerName, GroupName (100 records)
首先,我想将表B中的GroupNames
插入到表A中,其中ServerName
存在于表A中。然后我想删除表A中没有{{1}的所有服务器只有表A中的100条记录结束,并添加了GroupName
。
样本数据
表A:
GroupNames
表B:
ServerName InstanceName GroupName Value1
----------------------------------------------------------
Server1 Instance 1 - 500
Server1 Instance 2 - 300
Server2 Instance 1 - 400
由于每个表中的记录数不同,因此简单的ServerName GroupName
-------------------------
Server1 Group1
Server2 Group2
不起作用。
答案 0 :(得分:0)
首先,您应该从TableB更新TableA.GroupName
。试着用这个:
update A
set A.GroupName = B.GroupName
from TableA TAB
inner join TableB B on A.ServerName = B.ServerName
where ISNULL(A.GroupName,'-') = '-';
GO
然后您可以删除所有没有GroupName
delete from TableA where ISNULL(GroupName,'-') = '-';
GO
答案 1 :(得分:0)
更新查询在上一个答案中没问题,但删除一次可以进行更多修改。
UPDATE TA
SET TA.GroupName = TB.GroupName
FROM TableA TA
INNER JOIN TableB TB ON TA.ServerName = TB.ServerName
DELETE TA
FROM TableA TA
WHERE TA.ServerName NOT IN(SELECT ServerName FROM TableB)