Re: Помогите составить "простенький" SQL запрос
От: londinium Украина  
Дата: 26.04.16 08:16
Оценка: 4 (1)
Здравствуйте, SeLo, Вы писали:

SL>Есть таблица (T1) которую нужно обновить


SL>Поля ID, Status

SL>Значения A, 1
SL> B, 2
SL> E, 3

SL>Есть другая таблица (T2), которая содержит IDs:


SL>Поля ID

SL>Значения A
SL> B
SL> C

SL>Нужно в T1 добавить или обновить записи согласно записям в таблице T2. При обновлении Status устанавливается на 1

SL>Т.е. после обработки должно получится в T1:


SL>Поля ID, Status

SL>Значения A, 1 -- ничего не делали
SL> B, 1 -- изменили статус
SL> E, 3 -- ничего не делали
SL> C, 1 -- добавили запись

SL>Как такое проще всего сделать в T-SQL (SQl Server от 2005), а то что то через курсоры как-то сложно выходит.

SL>Уверен можно очень просто следать.

Если я Вас правильно понял, то у Вас два пути:
UPDATE T SET
T.STATUS=1
FROM DBO.T1 AS T
JOIN DBO.T2 AS X ON T.ID=X.ID

или
MERGE INTO dbo.T1 AS TGT
USING dbo.T2 AS SRC
ON TGT.ID=SRC.ID
WHEN MATCHED THEN UPDATE SET
TGT.STATUS=1
WHEN NO MATCHED THEN INSERT (ID,STATUS) VALUES(SRC.ID,1);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.