簡體   English   中英

如何從不同的表更新 SQL 服務器列

[英]How to update SQL Server column after from different table

我有一個名為 TableA 的表,它存儲了這樣的事件列表

Event_Id     Event_Name
1            Found in AD
2            Found in AAD

我有另一個表稱為表 B,它看起來像這樣

Event_Id    UserName      Extra
NULL        David         Found In AAD
1           James         Found in AD
Null        Ronal         Null

我只是嘗試根據比較 Table1 Event_Name和 TableB Extra列僅更新 TableB Event_ID列中的缺失值/空值。

我現在正在做這樣的手動處理,所以如果我能得到任何關於如何直接連接兩個表並更新它的幫助,我將不勝感激。

Update Table B
  Set Event_Id = case
         when Extra = 'Found in AAD' then 2
 end

您可以在UPDATE中使用一個簡單的子查詢來做到這一點。

UPDATE TableB SET
    Event_Id = (SELECT Event_Id from TableA a where a.Event_Name = TableB.Extra)
WHERE Event_Id is null;

這將查找Event_NameExtra_Name上的任何匹配項,並根據匹配項更新Extra表的Event_Id

SQL:

UPDATE 
  Extra_Data 
SET 
  Extra_Data.Event_Id = a.Event_Id 
FROM 
  Event_Data a 
  INNER JOIN Extra_Data b ON a.Event_Name = b.Extra_Name 
WHERE 
  b.Event_Id IS NULL;

結果:

| Event_Id | UserName |   Extra_Name |
|----------|----------|--------------|
|        2 |    David | Found In AAD |
|        1 |    James |  Found in AD |
|   (null) |    Ronal |       (null) |

SQL 小提琴:

http://sqlfiddle.com/#!18/3a2ea/7

update table_b 
set table_b.Event_Id = table_a.Event_Id 
from table_b
JOIN table_a  
ON table_b.extra  = table_a.Event_Name

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM