1

我想针对在我的数据库中插入一个表创建一个触发器。例如,如果我有一张company_name桌子,我想做以下事情:

  1. company_name在服务器 A 上的表中插入新行
  2. company_name调用一个触发器,获取服务器 A 上新插入的行的 id 。
  3. Set identity_insert ON在服务器 B的company_name桌子上
  4. 将刚刚插入服务器 A 的完全相同的行插入company_name服务器 B 上的表中。

链接服务器可以称为[ServerB].[ServerB-Database].dbo.company_name.

由于不同国家/地区的客户的数据托管限制,这是一项要求。

4

1 回答 1

4

一个问题是 A 国和 B 国之间的滞后和联系。

当远程插入发生时,本地事务仍在运行。这会降低性能并增加阻塞。

远程服务器也可能不可用。或者反应时间过长。您可以将触发器编码为不会失败,但您的数据不一致。

最后,如果远程服务器上有插入,则说明存在多主机问题。

我真的会考虑像复制这样的解决方案,将数据发布到另一台服务器。或者考虑使用服务代理来分离本地和远程插入。

于 2013-05-21T15:22:31.657 回答