Tsql 同步两个表,最佳实践

Tsql 同步两个表,最佳实践,tsql,triggers,synchronization,Tsql,Triggers,Synchronization,我需要在更新、删除或插入时,在数据库中同步两个表,只要其中一个发生更改。这些表格不一样 到目前为止,我能找到的最简单、最好的解决方案是添加SQL触发器 我慢慢地开始添加,似乎效果很好。但在我继续完成之前,我想确定这是一个好主意?以及一般良好的实践 如果没有,对于这种情况,有什么更好的选择 先谢谢你 问候 丹尼尔。 触发器将起作用,但有很多不同的选项可供考虑。 对这些表的所有数据修改都是通过存储过程完成的吗?如果是这样,考虑把逻辑放在存储过程中而不是触发器中。 更新必须是实时的吗?如果没有,考虑一

我需要在更新、删除或插入时,在数据库中同步两个表,只要其中一个发生更改。这些表格不一样

到目前为止,我能找到的最简单、最好的解决方案是添加SQL触发器

我慢慢地开始添加,似乎效果很好。但在我继续完成之前,我想确定这是一个好主意?以及一般良好的实践

如果没有,对于这种情况,有什么更好的选择

先谢谢你

问候
丹尼尔。

触发器将起作用,但有很多不同的选项可供考虑。

对这些表的所有数据修改都是通过存储过程完成的吗?如果是这样,考虑把逻辑放在存储过程中而不是触发器中。 更新必须是实时的吗?如果没有,考虑一个经常同步表而不是触发器的作业。不过,这可能会让删除变得棘手。不是不可能,只是很棘手

我们有一种情况,表非常相似,但列名或顺序略有不同。在这种情况下,我们为原始表创建了一个视图,让应用程序使用该视图而不是表的第二个副本。我们还可以一次性使用同义词指向原始表,但这要求表结构相同

一般来说,很多人试图避免不必要的触发器,因为在数据库中执行其他工作时,它们太容易被忽略。这并不会使它们变得糟糕,但在尝试解决问题时,可能会导致有趣的时刻

在您的场景中,在继续使用触发器之前,我可能会简要探讨其他选项。只需注意级联触发效应,其中一个更新导致第二个表更新,将更新传递回第一个表,然后再传递给第二个表,等等。您可以使用嵌套级别对此稍加防范。否则,您将面临达到最大递归级别并抛出错误的风险