具有相同列的名称但不同列顺序的数据库之间的SQL Server 2008事务复制

时间:2016-03-12 21:16:48

标签: sql-server-2008 transactional-replication

我是复制的新手。我的公司正在使用Dynamics Navision 2009.现在我需要将所有数据库从分支机构复制到单个数据库以进行报告。
这是数据库的结构

SOURCE

DB Name     : [BRANCH ONE]
TABLE Name  : [Branch One$Table1]
COLUMN Name : C1, C2, C3, C4
PRIMARY KEY : C1
--------------------------------------
DB Name     : [BRANCH TWO]
TABLE Name  : [Branch Two$Table1]
COLUMN Name : C1, C2, C3, C4
PRIMARY KEY : C1
--------------------------------------
    . . .
--------------------------------------
DB Name     : [BRANCH XXX]
TABLE Name  : [Branch XXX$Table1]
COLUMN Name : C1, C2, C3, C4
PRIMARY KEY : C1

DESTINATION

DB Name     : [REPORT DB]
TABLE Name  : [Company$Table1]
COLUMN Name : C1, C4, C2, C3
PRIMARY KEY : C1, C4
Note: Column C4 contain Branch ID. In Navision, column is sorted by Primary Key first.

当我尝试设置这些复制时,列C4(REPORT DB)的值始终由列C2(BRANCH DB)的值填充。我尝试使用INSERT的自定义存储过程,但结果始终与之前相同。

我知道如何设置一对一的事务复制,但从未成功运行多对一设置。请帮我设置这个复制。我在google搜索多对一复制示例/教程,但没有运气。特别是具有不同列顺序的表之间的复制。 谢谢..


最诚挚的问候,

Arfan Septianto

1 个答案:

答案 0 :(得分:0)

您可以删除列C4并将其添加回目标上的表吗?

如果没有,您可以修改存储的复制过程,命名MsIns *****,MsUpd *****,以反映不一致的列顺序。