如果目标表列顺序与源表不同,如何BCP导入?

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

我正在使用 C# 应用程序实现从一个数据库到另一个数据库的 SQL 数据迁移。数据库位于不同的单位。两个数据库中的表都已映射并具有相同的列,但是对于目标中的某些表,列顺序与源表不同。在执行“BCP In”时,由于列顺序的更改而出现错误。

备份时无法获取目标表的列顺序。

此外,我们无法从目标删除并重新创建表。

需要帮助来恢复这些表中更改了列顺序的数据。

我在网上搜索发现,在这种情况下,BCP 时不应使用“-n”或“-N”。然而,就我而言,它不起作用,并且 BCP 命令根本不起作用。

sql bcp
1个回答
0
投票

使用 BULK INSERT(通过 bcp 实用程序)时,对象架构定义需要匹配。

要解决此问题,您可以更改一个表中的列顺序以匹配另一个表。这可以通过 SSMS、link 来完成,并且数据将是持久的。

另一个选项是创建一个具有正确列顺序的视图,然后在视图中执行批量插入。 (批量插入支持视图插入) 然后,Sql 服务器将以正确的顺序对底层表执行插入。

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