对于这个问题中非常尴尬的措辞感到抱歉。我会解释一下。
我有一个包含14列的表格,其中我试图通过BCP导入数据。我的数据来自文本文件。此文本文件是TAB分隔的。逻辑上,连续14个数据单元应该有13个分隔符。我的数据不一致,如果末尾的值为空,则不会有分隔符。这意味着某些数据行只有10个分隔符。这导致我的数据包围"环绕"何时进口。我的文本文件中的第一个数据单元放在它之前的第10列。它应该是自己新行中的第一个单元格。
事情是文本文件中的每一行都以" CRLF"结尾。在BCP中默认使用。
有没有办法告诉BCP填写所有14列,然后再转到下一行?或者我每次导入时都必须重新格式化我的数据文件(不理想)。
这是我的BCP命令:
bcp testdb.dbo.MACARP in C:\Users\sysbrady\Desktop\MyData.txt /c /T /t "\t" /E -S WSTVDISTD023\SQLEXPRESS
答案 0 :(得分:2)
"有没有办法告诉BCP在进入下一行之前填写所有14列?"
当您说"填写"时,您是否希望BCP保持文本文件中存在空值? -k限定符告诉BCP保留空值(确保表中的列允许空值)。请参阅以下链接:
http://msdn.microsoft.com/en-us/library/ms187887.aspx
"事情是文本文件中的每一行都以" CRLF"结尾。默认情况下在BCP中使用。"
目前还不清楚 - 您可以发布图片吗?不确定您是否将此作为问题或要保留的功能。