我有以下场景:SQL Server 2012 中的数据库必须以事务方式将更改复制到 SQL Server 2000 数据库。由于两个数据库的模式不同,因此必须对目标进行转换。两个数据库都在同一个网络中。更好的方法是什么?
- 使用源数据库中的触发器进行转换并在目标中执行更改。
使用 SQL Server 事务复制(但据我所知,似乎不可能进行转换)。
有什么选择吗?
我有以下场景:SQL Server 2012 中的数据库必须以事务方式将更改复制到 SQL Server 2000 数据库。由于两个数据库的模式不同,因此必须对目标进行转换。两个数据库都在同一个网络中。更好的方法是什么?
使用 SQL Server 事务复制(但据我所知,似乎不可能进行转换)。
有什么选择吗?
使用 Aaron 提到的链接服务器,并在 SQL 2012 中进行转换后将数据批量加载到 SQL 2000 表中。您可以在 SQL 2012 中创建一些临时表,您可以在其中放置转换后的数据。
小心使用 SQLNCLI10 从 2012 到 2000 的链接服务器:请参阅此处 SQLNCLI10
据我所知,新客户端 SQLNCLI11 不适用于 SQL 2000。
由于您有不同的架构和不同的表结构,SQL Server 事务复制超出了范围。
有什么选择吗?
作为替代方案,您最好使用以下方法设计自己的自定义解决方案:
Microsoft Sync 框架和更改跟踪 (CT)(不是更改数据捕获 (CDC))。
注意:源应该是 SQL Server 2008 及更高版本,因为 CT 是在 sql server 2008 及更高版本中引入的。
您还可以查看Service Broker,因为它针对单向数据流进行了优化,并且比写入表甚至堆快得多。此外,您保留了 SQL Server 的事务一致性,因此一旦将数据写入队列,就可以保证它在队列中,并且只有在收到数据后才会从源服务器中删除。
另请参阅: