BCP实用程序会破坏数据

时间:2009-07-01 17:31:05

标签: database sql-server-2005 bcp

我正在运行从一台服务器到另一台服务器的两列表的批量副本。

源端的表有大约8列,但我只需要2列。

目标端的表有2列(我需要的两个,都是int类型)

这两个数据库都是SQL Server 2005。

这是我的两个bcp命令:

c:\> bcp "select c1, c2 from srcTable" queryout tableData.bcp -N -T -S srcServer
c:\> bcp destTable in tableData.bcp -N -T -S destServer

为什么这会损坏目标表中的数据?我应该得到很好的顺序整数,而不是我得到这个:

c1          c2
586332      83014148
123128736   -105042384
-561616278  -309997736

我做错了什么?

1 个答案:

答案 0 :(得分:1)

知道了。

列定义必须完全匹配 - 包括它是NULL还是NOT NULL。

消息来源:

srcTable (
c1 int not null (PK)
c2 int null
c3 datetime not null
c4 datetime null
...
)

目的地表格包含:

destTable (
c1 int not null (PK)
c2 int not null 
)

destTable.c2上的NOT NULL是错误。

现在被压扁了。