代码之家  ›  专栏  ›  技术社区  ›  Dav.id

SQL 2008 Express(R2):是否创建更新触发器以更新另一台服务器上的表?

  •  1
  • Dav.id  · 技术社区  · 15 年前

    我只是想通过一个过程来思考我需要的地方:

    1. Web服务器上的一个SQL 2008 Express数据库-将订单接收到ORDERS表中
    2. 另一个Web服务器上的另一个SQL 2008 Express数据库,用作处理订单等的后端系统。

    这种想法是,只有在插入新的订单记录(实际上是更新的)时,Web服务器数据库才能执行它的操作。故事的另一部分)我希望将该行插入到另一台服务器上的ORDERS表中…

    这两台服务器确实有本地IP地址,并且基本上在同一个子网上-即,可以很容易地进行通信…

    只是想知道SQL触发器是不是可行的,或者我是否在第二台服务器上有一个预定的作业,它每5分钟查询一次第一台服务器(大量的,不太多的订单),并将任何新的订单插入到它自己的数据库中。其思想是,源/第一服务器中的表有一个位字段,用于指示第二服务器是否看到/读取了该行…

    有什么想法吗?不幸的是,目前所有的SQL 2008 R2 Express…

    2 回复  |  直到 14 年前
        1
  •  3
  •   Mitch Wheat    15 年前

    您不希望触发器作为事务的一部分访问另一个服务器。一个解决方案是 Service Broker ;让触发器将消息插入本地队列,并授予其他服务器对此队列的访问权。

    SQL Server Service Broker提供 本机SQL Server数据库引擎 支持消息传递和排队 应用。这使得 开发人员创造复杂 使用数据库的应用程序 要通信的发动机部件 在不同的数据库之间。 开发人员可以使用ServiceBroker 易于构建分布式和可靠 应用。

        2
  •  0
  •   Paul Sasik    15 年前

    您需要先阅读链接服务器。这应该是一个 great article 让你从开始。更好的是,它描述的场景实际上与您的非常相似。另外,两个服务器之间的复制可能比触发器更好。这里有一个 link for an article 就这么做。