2014-12-08 34 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

相關問題