将数据从SQL Server 2012复制到Azure DB时出现问题。 在这里,我列出了我所做的步骤。
创建.dat
和.xml
格式文件,如下所示:
bcp.exe dbo.user_sayti out "c:\\dbo.user_sayti.dat" -w -k -Slocalhost -dsource_db -Uuser -Ppwd
bcp.exe dbo.user_sayti format nul -f "c:\\dbo.user_sayti.xml" -w -x -Slocalhost -dsource_db -Uuser -Ppwd
尝试将其复制到Azure DB并保留标识值:
bcp.exe dbo.user_sayti in "c:\\dbo.user_sayti.dat" -E -f "c:\\dbo.user_sayti.xml" -Sserver.database.windows.net -dtarget_db -Uuser -Ppwd
并且“Invalid character value for cast specification
”错误
我不明白为什么,因为.dat
文件包含标识列127
的值id (PK, int, not NULL)
,并且值的数量与行数匹配。
然后我尝试了没有-E
的相同命令,并且该过程成功完成(此特定表中只有一行,它出现在target_db
中,标识列值= 1
)。
答案 0 :(得分:0)
用-f
替换-w
参数(模式定义)解决了这个愚蠢的问题:)