小编Dan*_*til的帖子

仅订阅者触发器

有两个服务器.首先是生产中的ERP系统.第二个是用于重度分析查询的BI服务器.我们每天通过备份更新BI服务器.但是,这还不够,有些用户希望比第二天更频繁地看到他们的数据更改.除了要求备份或复制之外,我无法访问ERP服务器并且无法执行任何操作.

在开始要求复制之前.我想了解是否可以使用订阅者触发器来处理并非所有数据,而是更改.有一个ETL过程可以更快地进行一些查询(索引,转换等).触发器应该可以解决问题,但我找不到在订户端使用它们的方法.ERP系统不允许在数据库级别进行任何更改.因此,订阅者数据库似乎适用于触发器(它们不会影响ERP服务器性能).尽管如此,我找不到一种方法来设置它们.处理所有数据是一个疯狂的开销.

使用案例:简化示例,比方说,我们有两个复制表:

+------------+-------------+--------+
|     dt     | customer_id | amount |
+------------+-------------+--------+
| 2017-01-01 |           1 |    234 |
| 2017-01-02 |           1 |    123 |
+------------+-------------+--------+

+------------+-------------+------------+------------+
| manager_id | customer_id | date_from  |  date_to   |
+------------+-------------+------------+------------+
|          1 |           1 | 2017-01-01 | 2017-01-02 |
|          2 |           1 | 2017-01-02 |       null |
+------------+-------------+------------+------------+
Run Code Online (Sandbox Code Playgroud)

我需要将它们转换为以下索引表:

+----------+-------------+------------+--------+
|  dt_id   | customer_id | manager_id | amount |
+----------+-------------+------------+--------+
| 20170101 |           1 |          1 |    234 |
| …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server replication triggers database-trigger

6
推荐指数
1
解决办法
744
查看次数