我正在运行从一台服务器到另一台服务器的两列表的批量副本。
源端的表有大约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
我做错了什么?
答案 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是错误。
现在被压扁了。