BCP不返回任何错误,但不复制任何行
我正在尝试将军.csv大量数据转储到文件中SQL Server 2012年数据库。我没有做几千次。INSERT相反,它正在进行调查bcp。编辑: 这是一个自动化的过程,而不是一次性的。BULK INSERT该数据库的权限。
当我试图将数据复制到数据库中时,bcp它不会返回任何错误,但它不会复制任何内容-它只会回到0 rowscopied。我把它减少到不能正常工作的最小情况。
首先,创建一个包含两列的简单表:
CREATE TABLE .( (36) NOT NULL, NOT NULL PRIMARY KEY CLUSTERED ASC ) WITH (PAD_INDEX = OFF,STATISTICS_NORECOMPUTE = OFF,IGNORE_DUP_KEY = OFF,ALLOW_ROW_LOCKS = ON,ALLOW_PAGE_LOCKS = ON,FILLFACTOR = 40) ON ) ON GO然后,使用bcp从中创建格式文件。请注意,这个例子创建了一个XML格式文件,但对它来说是XML还是这台机器没关系。
bcp MyDB.dbo.mincase format nul -T -n -f mincasexml.fmt -x -S .\SQLEXPRESS现在创建一个data.csv该文件包括一行和两个条目,用制表符分隔。对我来说,这份文件只是:
somecharacters12345同样,这是一个制表符,而不是两个空间。是否有尾随换行符似乎并不重要。
现在,尝试bcp将数据插入到该格式文件中:
bcp MyDB.dbo.mincase in data.csv -f mincasexml.fmt -T -S .\SQLEXPRESS我得到的不是把数据复制到数据库中:
Starting copy...0 rows copied.Network packet size (bytes): 4096Clock Time (ms.) Total 1有人知道这是怎么回事吗?
谢谢!
解决方案:
该 BCP 命令通常需要指定标志符BCP文件格式模式。
-c指定字符(纯文本)模式
-n指定纯模式
-w指定unicode模式在你的测试案例中,你创建的文件是纯文本文件,所以你应该在命令中bcp 中指定 -c” 。
bcp MyDB.dbo.mincase in data.csv -c -T -S .\SQLEXPRESSMicrosoft建议使用导入和导出
-n为避免列值中出现字段分隔符的问题(请参考字符模式和纯模式的最佳实践)。
页:
[1]