Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 UPDATE записей на Linked Server  [new]
Yra
Member

Откуда:
Сообщений: 68
Здравствуйте!
Помогите дописать запрос, пожалуйста!

Есть 2 таблицы [Users] на локальном сервере и на связанном сервере совершенно одинаковые по структуре. Но содержание полей на локальном сервере могут измениться. Задача обновить измененные значения и на связанном сервере.
Составил предложение SELECT:
SELECT dbo.Users.[ID]
	,dbo.Users.[User]
        ,dbo.Users.[Password]
       ,dbo.Users.[JobTitle]
       ,dbo.Users.[Status],
  FROM [Users]
LEFT JOIN [VM-Server\SQLEXPRESS].[work].[dbo].[Users] LinkSrv ON ([Users].[ID] = LinkSrv.[ID] AND
															[Users].[JobTitle] = LinkSrv.[JobTitle] AND
															[Users].[Status] = LinkSrv.[Status]
																	  )
																	  
WHERE LinkSrv.[ID] IS NULL;

работает... отбирает записи, которые отличаются по полям [JobTitle] и [Status] от значений в этих полях на связанном сервере

А вот как теперь обновить значения на связанном сервере? как дописать инструкцию UPDATE не могу осилить..
24 мар 15, 09:26    [17422873]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE записей на Linked Server  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1820
Yra,

Так же как и для локального, только с указанием сервера бд и схемы.
24 мар 15, 09:44    [17422927]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE записей на Linked Server  [new]
Yra
Member

Откуда:
Сообщений: 68
Дело в том, что UPDATE у меня получается для конкретной записи с присвоением конкретных значений, типа
UPDATE [Users] SET [Users].[Name]='Курочкин К.К.', [Users].[Status]=1


а как сюда SELECT + LEFT JOIN ... сыплет ошибки
24 мар 15, 10:10    [17423055]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE записей на Linked Server  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Yra, ошибки мы должны угадать?

И почитайте хотя бы мануал по SELECT: https://msdn.microsoft.com/ru-ru/library/ms176104.aspx

Где вы там увидели обращение к таблице в select_list с указанием схемы? В select_list указывается только имя таблицы или ее алиас.
24 мар 15, 10:13    [17423070]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE записей на Linked Server  [new]
Yra
Member

Откуда:
Сообщений: 68
Minamoto,

у меня к SELECT вопросов НЕТ! Он работает... Можно убрать обозначение схемы

SELECT Users.[ID]
	,Users.[User]
        ,Users.[Password]
        ,Users.[JobTitle]
        ,Users.[Status]
  FROM [Users]
LEFT JOIN [VM-Server\SQLEXPRESS].[work].[dbo].[Users] LinkSrv ON ([Users].[ID] = LinkSrv.[ID] AND
												[Users].[JobTitle] = LinkSrv.[JobTitle] AND
												[Users].[Status] = LinkSrv.[Status]
												)
																	  
WHERE LinkSrv.[ID] IS NULL;


- тоже работает....

Вопрос кто откликнется и поможет результат запроса вставить в UPDATE....
24 мар 15, 10:24    [17423141]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE записей на Linked Server  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1820
UPDATE ur
SET ur.[JobTitle] = u.[JobTitle],
    ur.[Status] = u.[Status]
FROM
  [VM-Server\SQLEXPRESS].[work].[dbo].[Users] ur
  JOIN [Users] u
    ON u.[ID] = ur.[ID]
WHERE
  u.[JobTitle] <> ur.[JobTitle] OR
  u.[Status] <> ur.[Status]
24 мар 15, 10:25    [17423154]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE записей на Linked Server  [new]
Yra
Member

Откуда:
Сообщений: 68
X-Cite,

спасибо, без лишних слов и рассуждений - вот ЧЕЛОВЕЧИЩЕ!
Еще раз спасибо!
Я просто только недавно стал разбираться с объединениями и частенько еще недопонимаю конструкции с их участием...Ну ни чего, все мы когда то ходили пешком!....
24 мар 15, 10:34    [17423196]     Ответить | Цитировать Сообщить модератору
 Re: UPDATE записей на Linked Server  [new]
Glory
Member

Откуда:
Сообщений: 104751
Yra
Я просто только недавно стал разбираться с объединениями и частенько еще недопонимаю конструкции с их участием..

А в хелпе команды UPADTE даже специальный пример есть Updating Data Based on Data From Other Tables

Сообщение было отредактировано: 25 мар 15, 10:05
25 мар 15, 10:03    [17428074]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить