将数据导入sql server上不同服务器上的同一个表

问题描述 投票:1回答:2

我是sql server和sql的新手,所以我对导入/导出数据有疑问。我在两个不同的服务器上有两个相同的表。我没有权限修改其中一个,但我仍然可以导入数据。我尝试了一个不同的表,它工作。我有权修改的服务器,我们称之为Dev服务器,而我不称之为Prod服务器。我正在尝试将数据从Prod导入Dev。这个问题的关键是表有一个主键,当我尝试使用sql server导入和导出向导导入时,它说cannot insert duplicate key in object。我试图排除主键列,但后来它说cannot insert null values(我试图改变列以接受空值,但它不起作用)。我真的很感激一些帮助!如果您需要更多信息,请与我们联系。我试图在高层次上解释它。谢谢!

sql sql-server
2个回答
0
投票

由于您要加载的目标表具有主键约束,因此此列中仅允许使用唯一值。它不能通过从导入中排除它而保留为null,对于SQL Server和类似的关系数据库也是如此。您可以从目标表中删除主键,在加载之前截断该表,或者仅通过增量加载导入新记录。如果选择采用增量加载方法SQL Server Integration Services(SSIS)是处理此问题的好选择。你提到你是SQL Server的新手所以我猜你没有使用SSIS,但是如果你想了解更多关于这一点的话,来自Andy Leonard的SSIS Stairway是一个很好的起点。


0
投票

如果问题是“Prod”中存在一些更新的记录,那么您可以简单地将整个表单独导入您的服务器(作为单独的表),然后将它们联合起来。这将只为您提供两个表中的不同记录。

© www.soinside.com 2019 - 2024. All rights reserved.