我在VPS上有一个SQL Server 2012网络版(11.0.5058.0)实例,它承载两个数据库。我想镜像从3个表到第二个数据库的几列,但我没有安装事务复制。
所以我在源数据库上有一个Staff
表 - 我只想要staff_code
和unique_id
- 我有一个Activity
表 - 我只需要{{} 1}},activity_code
和description
..等等。
解决这个问题的最佳方式是什么?这会触发吗?数据不会定期更新,可能每周一次 - 但我仍然希望尽可能快地同步?
源数据库中的数据可能被其他应用程序删除,更新或插入,因此我想确保数据库中的数据正确反映该信息。
感谢您的任何建议!
更新:表格比较示例:
unique_id
答案 0 :(得分:2)
只要可以连接两个数据库(例如,你可以做SELECT * FROM SecondDB.dbo.Activity
吗?),那么我就是
设置查询(独立或存储过程),只检查源上的数据是否已更改
使用普通SELECT
,INSERT
,UPDATE
和可能的DELETE
语句更新第二个数据库
使用SQL Server 代理作业设置该查询/存储过程以定期运行,例如每晚一次,每周一次 - 无论对你有用吗</ p>
我不认为触发器在这里是一个不错的选择 - 触发器应该保持非常小,精益,快速 - 并且“复制”到另一个数据库听起来像是太多的处理工作以获得灵活的触发器....(如果你的触发器需要很长时间才能完成,那么调用应用程序将不得不等待整个时间.....对你的应用程序性能不利!)