【发布时间】:2023-03-07 03:51:01
【问题描述】:
我想将数据从离线数据库同步到在线数据库。目前我正在使用带有某些条件的查询来执行它。但同步后在离线数据库中编辑的数据将不会在下次同步时再次同步到在线数据库。有没有简单的方法来更新在线数据库中的编辑数据。 我目前的查询如下:
INSERT INTO OPENQUERY([103.21.58.192], 'SELECT * FROM [amurajbg_ss].[dbo].[AccLedgers]')
SELECT *
FROM OPENQUERY([USER-PC\SQLEXPRESS],
'DECLARE @LastSyncDate AS DATETIME
DECLARE @CurrentSyncDate AS DATETIME
SELECT @CurrentSyncDate = GETDATE()
SELECT @LastSyncDate = LastSyncDate
FROM [CrushMate].[dbo].[Sync]
SELECT * FROM [CrushMate].[dbo].[AccLedgers]
WHERE CreatedDate BETWEEN @LastSyncDate AND @CurrentSyncDate
AND Status=''True'' ')
我的在线数据库服务器不允许我执行复制,因为我没有这样做的权限。唯一的方法是通过这样的查询。
谢谢
【问题讨论】:
-
2
OPENQUERY?这个查询在哪里执行?看起来这里涉及到 3 个主机 -
查询正在从离线数据库执行。我的sql不太好。如果您可以对此提出改进建议,请提供帮助。它是通过链接服务器完成的。我尝试了普通的推送查询,但这样耗时较少。
-
offline db的意思是USER-PC\SQLEXPRESS? -
这很清楚。忽略围绕使用 OpenQuery 和远程服务器的混淆,您将测试基于 adddate,而不是 lastupdatedate。您需要后者才能使用此模式。
-
是否有任何查询模型来更新在离线数据库中编辑的表中的所有条目。即要选择修改的行并在在线数据库中更新
标签: sql sql-server synchronization replication