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

时间:2010-08-19 06:07:45

标签: sql database sql-server-2008 triggers database-connection

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

  1. 网络服务器上的一个SQL 2008 Express数据库 - 将订单记入订单表
  2. 另一个SQL 2008 Express数据库在另一个Web服务器上充当后端系统来处理订单等
  3. 这个想法是可以让网络服务器数据库做它做的事情,并且只有当插入新的订单记录(实际更新......故事的另一部分)时,我希望将该行插入到订单表中在另一台服务器上......

    这两个服务器确实有本地IP地址,并且基本上位于同一个子网上 - 即可以轻松地进行通信......

    只是试着找出一个SQL Trigger是要走的路,或者我在第二台服务器上有一个预定的工作,查询第一台服务器说每隔5分钟(充足,没有太多订单)并插入任何新订单进入它自己的数据库..想法是源/第一个服务器中的表有一个位字段,以指示该行是否已被服务器2看到/读取...

    有什么想法吗?不幸的是,现阶段所有SQL 2008 R2都表达了......

2 个答案:

答案 0 :(得分:3)

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

  

SQL Server Service Broker提供   SQL Server数据库引擎原生   支持消息传递和排队   应用。这使得它更容易   开发人员创造复杂   使用数据库的应用程序   引擎组件进行通信   不同的数据库之间。   开发人员可以使用Service Broker   轻松构建分布式且可靠   应用

答案 1 :(得分:0)

您需要先阅读链接服务器。对于你来说,这应该是great article。更好的是,它描述的场景实际上与你的场景非常相似。此外,两个服务器之间的复制可能是比触发器更好的选择。这是link for an article正在做的事情。

相关问题