如何从另一个 SQL 服务实例更新 table
How can I update table from another SQL service instance
我想 link 两个 SQL 服务器实例在服务器表发生更改(插入或更新)时更新客户端表。我希望通过 SQL 服务器自动完成工作,我在 MSDN 中阅读了有关 Linked Servers (Database Engine) 的内容。
这个方法是我想要的,还是有其他方法可以做到?
编辑:
我想更新表格的数据
您可以使用 Microsoft 同步框架,这里是文档 https://msdn.microsoft.com/en-us/sync/bb887608.aspx
或使用复制
最简单的方法是通过主 table 上的触发器,如下所示:
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
如果您无法创建链接服务器,您可以使用事务复制来保持 table 同步,但触发器可能更易于维护。
您可以使用复制,它允许您将一个对象(例如一个 table)或多个对象发布到另一台服务器,它会在源为 table(s) 时自动更新客户端更改(通过插入或更新)。
https://msdn.microsoft.com/en-us/library/ms151198.aspx
我想 link 两个 SQL 服务器实例在服务器表发生更改(插入或更新)时更新客户端表。我希望通过 SQL 服务器自动完成工作,我在 MSDN 中阅读了有关 Linked Servers (Database Engine) 的内容。
这个方法是我想要的,还是有其他方法可以做到?
编辑:
我想更新表格的数据
您可以使用 Microsoft 同步框架,这里是文档 https://msdn.microsoft.com/en-us/sync/bb887608.aspx 或使用复制
最简单的方法是通过主 table 上的触发器,如下所示:
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
如果您无法创建链接服务器,您可以使用事务复制来保持 table 同步,但触发器可能更易于维护。
您可以使用复制,它允许您将一个对象(例如一个 table)或多个对象发布到另一台服务器,它会在源为 table(s) 时自动更新客户端更改(通过插入或更新)。 https://msdn.microsoft.com/en-us/library/ms151198.aspx