C# 如何同步2个数据库
我想同步2条特定于数据库的记录。 假设我有两个数据库C# 如何同步2个数据库,c#,sql,sql-server-2008,synchronization,C#,Sql,Sql Server 2008,Synchronization,我想同步2条特定于数据库的记录。 假设我有两个数据库 1.Shop 2.Stock 现在让我们假设用户更改库存中特定产品的价格。我想改变这个产品的价格在商店也 我得出的结论是,假设互联网连接稳定 当股票价格发生变化时,我调用一个web服务,该服务将在web数据表price中插入条目 现在在商店方面,我每20分钟使用web服务ping一次web数据表,如果我发现任何新条目,我会更新商店中的相关产品价格 我考虑的另一个选择是复制。但我们使用的是SQL Server的express editi
1.Shop
2.Stock
现在让我们假设用户更改库存中特定产品的价格。我想改变这个产品的价格在商店也
我得出的结论是,假设互联网连接稳定
- 当股票价格发生变化时,我调用一个web服务,该服务将在web数据表price中插入条目
- 现在在商店方面,我每20分钟使用web服务ping一次web数据表,如果我发现任何新条目,我会更新商店中的相关产品价格李>
是我的第一个选择对于这个目的来说是有效的,还是我遗漏了什么,并且有更好的选择来实现这个目的 您可以在Stock表上创建触发器
CREATE TRIGGER triggerName
ON [Stock].[dbo].[products]
AFTER UPDATE
AS
IF ( UPDATE (productPrice))
BEGIN
--insert to shop
END
GO
您可以在Stock表上创建触发器
CREATE TRIGGER triggerName
ON [Stock].[dbo].[products]
AFTER UPDATE
AS
IF ( UPDATE (productPrice))
BEGIN
--insert to shop
END
GO
您可以像上面pRime所说的那样在表上有一个触发器,但不要直接写入另一个数据库,而是将更改写入本地“暂存”表,然后每隔20分钟左右安排一个任务将更新发送到第二个数据库 您可以将第二个DB设置为链接服务器
这样可以避免在两个dbs之间的连接断开时将表设置为只读触发器。您可以像上面pRime所说的那样在表上设置触发器,但不必直接写入另一个数据库,而是将更改写入本地“暂存”表,然后每隔20分钟左右安排一个任务将更新发送到第二个数据库 您可以将第二个DB设置为链接服务器
通过这种方式,您可以避免在两个dbs之间的连接断开时,将表设置为只读触发器。如果无法在这种情况下使用MS SQL Server复制功能(需要一些您已经确定的非快速版)(请参阅),则另一种选择是使用MS Sync Framework(可以使用DBs、SQL CE等文件,甚至自定义数据源等)-请参阅 如果您真的希望自己在代码中实现这一点(我强烈建议您不要这样做),那么将其实现为“推送场景”:
- 填充暂存表的DB触发器
- Windows服务,它检查临时表中的更改并应用这些更改n
- 冲突解决规则
- 完成所有记录,以便能够分析差异(以防万一)
- 填充暂存表的DB触发器
- Windows服务,它检查临时表中的更改并应用这些更改n
- 冲突解决规则
- 完成所有记录,以便能够分析差异(以防万一)