C# 在相似数据库之间移动数据

C# 在相似数据库之间移动数据,c#,sql,.net,sql-server,database-migration,C#,Sql,.net,Sql Server,Database Migration,我有两个结构几乎相同的SQL Server数据库。我必须定期将数据和数据从一个移动到另一个。找到的解决方案主要用于重新创建数据库,我只想移动稍微修改过的数据。受影响的表需要是可配置的,并且两个数据库位于不同的机器上 所以:每隔一分钟左右获取一次数据,将其插入到另一个数据中,并进行很轻的预定义更改,然后删除原始记录 在这种情况下,.NET和/或SQL的最佳解决方案是什么?谢谢。我会用的。使用内置复制将防止任何人重新发明轮子。我会使用。使用内置复制将防止任何人重新发明轮子。可能需要镜像数据库。这里有

我有两个结构几乎相同的SQL Server数据库。我必须定期将数据和数据从一个移动到另一个。找到的解决方案主要用于重新创建数据库,我只想移动稍微修改过的数据。受影响的表需要是可配置的,并且两个数据库位于不同的机器上

所以:每隔一分钟左右获取一次数据,将其插入到另一个数据中,并进行很轻的预定义更改,然后删除原始记录


在这种情况下,.NET和/或SQL的最佳解决方案是什么?谢谢。

我会用的。使用内置复制将防止任何人重新发明轮子。

我会使用。使用内置复制将防止任何人重新发明轮子。

可能需要镜像数据库。这里有一个您可能感兴趣的链接:


另一个解决方案更为基本,数据库中的每个表都应该有一个时间戳字段,然后通过.net应用程序根据时间戳选择行并插入到另一个数据库。

可能需要镜像数据库。这里有一个您可能感兴趣的链接:


另一种解决方案更为基本,数据库中的每个表都应该有一个时间戳字段,然后通过.net应用程序根据时间戳选择行并插入到另一个数据库。

可以创建一个SSIS包,以便在可重启的manor中执行以下操作

1-标记要从服务器A复制的数据

2-将数据从服务器A复制到服务器B

3-从服务器A中删除标记的数据

这个解决方案的好处在于,数据源实际上可以是任何符合ODBC的东西

我以前写过一个数据收集TSQL程序,它将数据从一个数据库移动到同一服务器上的另一个数据库。它被安排为每5分钟运行一次的作业

它使用OUTPUT子句将事务设置为一个单位。我还使用TOP(N)子句在while循环中执行了此操作,以便日志文件不会增长

-- Delete a row and data to audit table
DELETE FROM [Person].[CountryByContinent]
  OUTPUT 'DELETE RECORD', DELETED.Country, DELETED.Continent
  INTO [Stage].[Audit] ([Action], [Country], [Continent])
WHERE [Country] = 'Chillis Grill & Bar'; 
GO  
如果它位于另一台服务器上,则始终可以使用链接服务器。然而,考虑到LAN/WAN传输,它们有时会很慢


祝您好运。

可以创建一个SSIS包来在可重启的庄园中执行以下操作

1-标记要从服务器A复制的数据

2-将数据从服务器A复制到服务器B

3-从服务器A中删除标记的数据

这个解决方案的好处在于,数据源实际上可以是任何符合ODBC的东西

我以前写过一个数据收集TSQL程序,它将数据从一个数据库移动到同一服务器上的另一个数据库。它被安排为每5分钟运行一次的作业

它使用OUTPUT子句将事务设置为一个单位。我还使用TOP(N)子句在while循环中执行了此操作,以便日志文件不会增长

-- Delete a row and data to audit table
DELETE FROM [Person].[CountryByContinent]
  OUTPUT 'DELETE RECORD', DELETED.Country, DELETED.Continent
  INTO [Stage].[Audit] ([Action], [Country], [Continent])
WHERE [Country] = 'Chillis Grill & Bar'; 
GO  
如果它位于另一台服务器上,则始终可以使用链接服务器。然而,考虑到LAN/WAN传输,它们有时会很慢


祝你好运。

你所说的“几乎相同的结构”是什么意思?这些数据库架构是否使用相同的脚本构建?另外,您只想移动“稍微修改的数据”是什么意思?你指的是在给定的时间范围内更新的任何行吗?我想你是在追求但不确定你所说的“两个数据库在不同的机器上”@mat几乎相同我的意思是,在几十个表中,有几个表具有不同的关系。通过“稍微修改数据”的方式,例如设置当前日期或不移动特定列。它们都是简单的修改。@huMpty duMpty所说的“两个数据库在不同的机器上”,我的意思是排除使用相同sql server实例的解决方案。仅说明我们所说的数据库是在物理上独立的计算机上。@Custos:正在尝试在
localhost
上执行此操作吗??这些数据库应该在
服务器中
!!“几乎相同的结构”是什么意思?这些数据库架构是否使用相同的脚本构建?另外,您只想移动“稍微修改的数据”是什么意思?你指的是在给定的时间范围内更新的任何行吗?我想你是在追求但不确定你所说的“两个数据库在不同的机器上”@mat几乎相同我的意思是,在几十个表中,有几个表具有不同的关系。通过“稍微修改数据”的方式,例如设置当前日期或不移动特定列。它们都是简单的修改。@huMpty duMpty所说的“两个数据库在不同的机器上”,我的意思是排除使用相同sql server实例的解决方案。仅说明我们所说的数据库是在物理上独立的计算机上。@Custos:正在尝试在
localhost
上执行此操作吗??这些数据库应该在
服务器中
!!据我所知,镜像需要相同的结构,这里不是这样,只是略有不同。因为我在read-copy-delete中移动数据,所以我知道新数据是什么,因为第一个数据中的所有内容都是新数据。我一直在寻找一个已经实现的解决方案,因此我不需要重新发明轮子。据我所知,镜像需要相同的结构,但这里不是这样,它略有不同。因为我在read-copy-delete中移动数据,所以我知道新数据是什么,因为第一个数据中的所有内容都是新数据。我一直在寻找一个已经实现的解决方案,所以我不会重新发明轮子。据我所知,复制不会删除原始记录。这是要求的一部分?据我所知,复制不会删除原始记录。这是要求的一部分?