【发布时间】:2019-04-10 04:57:34
【问题描述】:
我遇到了一个问题。我正在尝试使用 BCP 将大约 700,000 条记录导入工作表。
这是我用来构建工作表的 SQL:
If Exists (Select * From sys.tables Where [name] = 'InactiveIDs')
Begin
Drop Table [dbo].[InactiveIDs]
End
Create Table [dbo].[InactiveIDs] (
ContactId UniqueIdentifier Not Null,
ID Varchar(50),
EmailAddress VarChar(255) Not Null
)
Create Index IX_ContactIdEmailAddress
On [dbo].[InactiveIDs] (ContactId, EmailAddress)
这是格式文件文件:
13.0
3
1 SQLUNIQUEID 1 36 "," 1 ContactId ""
2 SQLCHAR 2 50 "," 2 ID SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 2 255 "\r\n" 3 EmailAddress SQL_Latin1_General_CP1_CI_AS
这是一些示例数据:
CBD60121-C5E1-E511-B2B4-005056820129,199e6799e3c64b06a87e86a5047e5f41,someone@verizon.com
3D22A4C2-507B-E411-99C7-005056820126,76410ce5beab4a7da943b95b3de3b0c1,someone@gmail.com
AE5B9335-B126-E611-ABF2-005056820020,e7d181abdf154f79b5dcaa4d64fec7f7,someone@yahoo.com
93F94F65-FA2A-E311-87A7-005056B5025F,3e2fae28cace4f068fa670879d7807e3,someone@juno.com
0A41305C-C087-E411-A37D-00505682001E,55b0162742b04a369c1c57d8d917d45c,someoneelse@yahoo.com
这是我的命令行:
bcp.exe dbo.InactiveIDs in InactiveIDs.csv -f InactiveIDs.bcp.fmt -T -S SqlServerName -d DatabaseName
这是输出:
Starting copy...
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
SQLState = 22001, NativeError = 0
Error = [Microsoft][ODBC Driver 13 for SQL Server]String data, right truncation
BCP copy in failed
【问题讨论】:
-
你看这篇文章了吗? stackoverflow.com/questions/11566658/…
-
我做了,@DanielBlais,但没有发现它很有帮助。 :(
-
你确定你的行尾是windows风格的
\r\n? -
1) 文件是用什么字符集写入的?假设它在一个文件中? 2) 我看到 10 条错误消息,但这些错误消息是针对记录 1-10 还是针对记录 9990-9999?
-
您可以增加 ID 和 EmailAddress 的大小,以确保您不必记录大于列大小的记录。
标签: sql sql-server bcp