SQL Server - 将表中的某些列镜像到同一服务器上的另一个数据库而不进行复制

时间:2014-08-16 01:47:08

标签: sql sql-server triggers replication

我在VPS上有一个SQL Server 2012网络版(11.0.5058.0)实例,它承载两个数据库。我想镜像从3个表到第二个数据库的几列,但我没有安装事务复制。

所以我在源数据库上有一个Staff表 - 我只想要staff_codeunique_id - 我有一个Activity表 - 我只需要{{} 1}},activity_codedescription ..等等。

解决这个问题的最佳方式是什么?这会触发吗?数据不会定期更新,可能每周一次 - 但我仍然希望尽可能快地同步?

源数据库中的数据可能被其他应用程序删除,更新或插入,因此我想确保数据库中的数据正确反映该信息。

感谢您的任何建议!

更新:表格比较示例:

unique_id

1 个答案:

答案 0 :(得分:2)

只要可以连接两个数据库(例如,你可以做SELECT * FROM SecondDB.dbo.Activity吗?),那么我就是

  • 设置查询(独立或存储过程),只检查源上的数据是否已更改

  • 使用普通SELECTINSERTUPDATE和可能的DELETE语句更新第二个数据库

  • 使用SQL Server 代理作业设置该查询/存储过程以定期运行,例如每晚一次,每周一次 - 无论对你有用吗<​​/ p>

我不认为触发器在这里是一个不错的选择 - 触发器应该保持非常小,精益,快速 - 并且“复制”到另一个数据库听起来像是太多的处理工作以获得灵活的触发器....(如果你的触发器需要很长时间才能完成,那么调用应用程序将不得不等待整个时间.....对你的应用程序性能不利!)