2016-03-25 3 views
1

Это моя ситуация:SQL Server обновление нового столбца на основе другого столбца из другой таблицы

Подсказка: COLUMN (NUMBER_IDENTITY) на 2 таблицы имеет такое же значение, но те 2 таблицы не имеет никакого отношения друг с другом (это мой выбор для моей ситуации)

состояние Ранним база

  • у меня была таблица CONTRACTS (ID, NUMBER_IDENTITY, USER_ID)
  • У меня была таблица SUB_CONTRACTS (ID, NUMBER_IDENTITY)

СЕЙЧАС

У меня есть таблица CONTRACTS (ID, NUMBER_IDENTITY, USER_ID)

добавить новый столбец в SUB_CONTRACTS (ID, NUMBER_IDENTITY , USER_ID)

Моя проблема

Я должен обновить USER_ID столбец в SUB_CONTRACTS с тем же значением, что и в CONTRACTS. Я могу сделать это обновление, потому что столбец из двух таблиц совпадает с NUMBER_IDENTITY. Таким образом, SUB_CONTRACT является дополнением к CONTRACT.

Вопрос

Как построить функцию, процедуру или запроса в SQL Server, который будет решить мою проблему? Могу ли я создать функцию, которая одновременно обновляет весь столбец, соответствующий этому условию? Я могу решить в мини-решении с запросом, но я не могу присоединиться к этому мини-запросу, чтобы решить мою проблему.

+1

Свободная рука, но простое обновление + соединение a'la 'UPDATE sc SET sc.user_id = c.user_id FROM sub_contracts sc Контракты JOIN c ON sc.number_identity = c.number_identity' должны сделать это. Вопрос, однако, почему вы храните идентификатор пользователя в дополнительном месте, если он всегда должен быть таким же, как и в контракте? –

+0

@JoachimIsaksson, потому что я должен хранить некоторую информацию sub_contracts в другой таблице –

ответ

3
update SUB_CONTRACTS 
set USER_ID = CONTRACTS.USER_ID 
from SUB_CONTRACTS 
inner join CONTRACTS on (SUB_CONTRACTS.NUMBER_IDENTITY = CONTRACTS.NUMBER_IDENTITY) 

Этот синтаксис будет работать для SQL Server. Он будет обновлять все значения USER_ID в SUB_CONTRACTS, чтобы соответствовать значениям USER_ID в CONTRACTS, где значение NUMBER_IDENTITY одинаково в двух таблицах.

+0

, это работает! Ты спас меня! Спасибо! –

+0

Добро пожаловать :) – Seibar

Смежные вопросы