簡體   English   中英

使用來自不同表的值更新一個表中的列而不添加新行

[英]Update column in one table with values from different table without adding new rows

我在兩個表中有兩個表和一個名為 code 的公共列。 我想用表 B 中名為 set_version 值的列更新表 A 中名為 version 的列的值。但這不應該添加行而只更新值。 我怎么做?

您可以將updatejoin一起使用:

update a
    set version = b.set_version
    from a join
         b
         on <some join condition here that your question does not specify>;

update僅更新現有行。 它不會向表中添加新行。

以上所有答案都是正確的。但為了使它更完美,我想回答我的問題,以便如果有人閱讀,那么他/她應該一目了然......

我擁有的 :

有兩個表“A”和“B”,有一個公共列“代碼”

我想要的是 :

  • 將值放在表 'A' 中名為 'Set_version' 的列中的表 'B' 中名為 'Version' 的列中。
  • 表'A'和'B'之間有一個名為'Code'的公共列。
  • 只有當公共列中的值匹配時,才會影響表 'A' 中名為 'Version' 的列的行,其值是表 'B' 的 'Set-version' 中的值,而不在表中添加新行。如果有沒有行匹配,那么應該沒有影響。

解決方案:

一般結構

UPDATE        targetTable
SET           targetTable.targetColumn = s.sourceColumn
FROM          targetTable t
INNER JOIN    sourceTable s
ON            t.matchingColumn = s.matchingColumn

使用我的表和 com 名稱的結構

UPDATE        dbo.A
SET           dbo.A.Version = s.Set_version
FROM          dbo.A t
INNER JOIN    dbo.B s
ON            t.Code = s.Code

這肯定會對我的場景有所幫助!

暫無
暫無

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

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