Обновить столбец в одной таблице значениями из другой таблицы без добавления новых строк - PullRequest
0 голосов
/ 02 марта 2020

У меня есть две таблицы и один общий столбец с именем code в обеих таблицах. Я хочу обновить значения столбца с именем version в таблице A на столбец с именем set_version values ​​в таблице B. Но это не должно добавлять строки, а только обновлять значения. Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 02 марта 2020

Вы бы использовали update с join:

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

update только обновляет существующие строки. Он не добавляет новые строки в таблицу.

0 голосов
/ 02 марта 2020

Все приведенные выше ответы были правильными. Но чтобы сделать его более совершенным, я хотел бы ответить на мой вопрос, чтобы, если кто-то прочитал, он / она получил его одним взглядом ...

Что я have:

Есть две таблицы 'A' и 'B' с одним общим столбцом 'Code'

Что я хочу:

  • Поместите значения в столбец с именем 'Version' таблицы 'A' из столбца с именем 'Set_version' таблицы 'B.
  • И между таблицами' A 'и' B 'есть общий столбец с именем' Code '.
  • Только если значения совпадают в общих столбцах, они влияют только на строки столбца с именем 'Version' в таблице 'A' и на значения в 'Set-version' таблицы 'B' без добавления новых строк в таблицу. .Если нет подходящих строк, то не должно быть никакого влияния.

Решение:

Общая структура

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

Структура с использованием имен моей таблицы и кумна

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

Это определенно поможет моему сценарию!

...