2015-04-21 4 views
0

Я хочу связать два экземпляра SQL-сервера для обновления таблиц клиентов, если таблицы сервера были изменены (вставить или обновить). Я хочу, чтобы работа автоматически с помощью SQL Server, я читал о Linked Servers (Database Engine) в MSDN.Как обновить таблицу из другого экземпляра службы SQL

Этот метод делает то, что я хочу, или есть другой способ сделать это?

Edit:

Я хочу, чтобы обновить данные таблиц

+0

Если у вас есть доступ к серверу, вы можете сделать доставку журнала и даже посмотреть на группы доступности, если у вас есть предприятие. Вы также можете посмотреть аудит на таблицах. Много вариантов - что вы хотите сделать? –

+0

@AnthonyHorne Я хочу, чтобы autoupdate для databsa клиента, если таблицы сервера изменились (не все таблицы) – Akrem

+0

Мы делаем то же самое, но только уведомляем. Связанный сервер, опросить sys.tables и sys.columns и т. Д., Но только уведомить кого-то, что все изменилось - не обновление. –

ответ

0

Самый простой способ сделать это с помощью триггер на главной таблице, такой как:

use masterdatabase; 
go 

create trigger update_clients_of_master 
on dbo.mastertable 
after update as 
begin 
update cl1 
set cl1.col1 = i1.col1, cl1.col2=i1.col2 
    from inserted i1 
     inner join clientdbname.dbo.clienttable cl1 on cl1.id=i1.id 

end 

Если вы не можете создать связанный сервер, вы можете использовать транзакционную репликацию, чтобы синхронизировать таблицы, но триггеры, вероятно, легче поддерживать.

0

Вы можете использовать репликацию, которая позволяет публиковать один объект (например, одну таблицу) или более на другой сервер и автоматически обновляет таблицу (ы) клиентов при изменении источника (путем вставки или обновления). https://msdn.microsoft.com/en-us/library/ms151198.aspx

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