有没有一种方法可以将记录从一个SQL实例上的表复制到另一个SQL实例上的相同表

时间:2019-01-31 21:19:52

标签: sql-server copy

我们有一位实习生,他得到了书面指示,可以根据日期(在我们的ERP系统中)从数据库中删除旧数据。他们对结果着迷,并一直删除而不是在所需的日期停止。现在,生产数据库中有4年缺少记录。我的开发数据库中有这些记录,该数据库位于不同服务器上的不同实例中。有没有办法将这4年的数据从开发数据库转移到生产数据库,当然要检查以确保没有重复(交易号的唯一索引)。

我还没有尝试过任何东西,因为我不确定从哪里开始。我确实在与生产数据库相同的实例上有一个测试数据库,可以用来测试传输。

2 个答案:

答案 0 :(得分:0)

基本插入即可正常工作。

Insert ProdDB.schema.YourTable
([Columns])
select ([Columns])
from TestDB.schema.YourTable
where YourDateRange predicates here

答案 1 :(得分:0)

有几种方法可以做到这一点。假设这是在另一台计算机上,则需要在开发计算机上创建一个链接服务器以链接到目标服务器(或者,从技术上讲,也可以使用从生产服务器到开发计算机的链接)。然后,将所选记录从源插入到目标。

更有效地,您可以使用导出数据功能。右键单击数据库(不是服务器/实例,而是数据库),然后从弹出菜单中选择“任务” /“导出数据”。这将弹出“ SQL Server导入和导出向导”。使用上面的查询选择要导出的数据。

如果出于安全考虑而对此造成干扰,请在新数据库中创建具有备用名称(例如MyInvRecords)的表副本,然后将数据导出到这些表中。备份该数据库,将其传输到目标服务器可访问的某个位置,还原该数据库,然后将行传输回原始数据库。

除了这些方法外,我不需要使用任何其他方法,因此其中一种应为您工作。