2014-12-08 56 views
1

我正在MSSQL中使用BCP将平面文件数据导入到表中。文件具有换行符(0A)作为行分隔符。 我使用下面的BCP查询导入文件如何从MSSQL BCP获取具有数据截断问题的字段名称

bcp dbo.BCPTest in O:\BCPTest\test.txt -c -t| -r 0x0A -T -h TABLOCK 

我越来越:

SQLSTATE = 22001,NativeError = 0 错误= [微软] [SQL Server本机客户端10.0]字符串数据,右截断警告。

如何获取在BCP中有截断问题的字段名称。

+0

不要以为有。在谷歌上找到这个(http://blogs.msdn.com/b/sqlserverfaq/archive/2010/03/02/bcp-in-sql-server-2005-does-not-truncate-a-column.aspx)我认为这可能是你最好的选择。唯一的解决办法是在导入之前手动验证您的数据 – Jaques 2014-12-08 10:44:58

+0

另一个关于该主题的好主意。 http://www.sqlservercentral.com/articles/BCP+%28Bulk+Copy+Program%29/105867/ – 2014-12-08 10:46:34

+0

@JohnBabb:感谢您分享文章。这非常有帮助 – Raghunath 2014-12-09 06:10:49

回答

0

我的建议是在命令中使用错误文件选项。我用这个来从sql server获得更多的描述性错误。

-e err_file 指定用于存储bcp实用程序无法从文件传输到数据库的任何行的错误文件的完整路径。来自bcp命令的错误消息转到用户的工作站。如果未使用此选项,则不会创建错误文件。 如果err_file以连字符( - )或正斜杠(/)开头,则不要在-e和err_file值之间包含空格。

http://msdn.microsoft.com/en-us/library/ms162802.aspx

相关问题