BULK INSERT操作系统错误代码32

时间:2010-11-09 11:25:51

标签: sql-server sql-server-2005 tsql

我在存储过程中使用了BULK INSERT,我收到了这个错误:

Cannot bulk load because the file "D:vanAS_TEST_vanRunGroupervan_DB.csv" could not be opened. Operating system error code 32(error not found).

请注意,虽然在使用BULK INSERT时路径没有斜杠。另外,我得到一个代码32,虽然没有找到错误描述。当我在几个论坛中查找它(没有任何确定性)时,似乎错误代码与:

有关
The process cannot access the file because it is being used by another process.

有人可以证实吗?

另外,为什么在使用斜杠传递批量插入命令的文件路径时,文件路径是否缺少斜杠?

感谢大家的帮助

更新

这就是我调用存储过程的方式:

exec data_Import ''D:\van\AS_TEST_van\Run\Grouper\van_DB.csv'', APCE_1011_Grouper_Out_FCE

这是我在存储过程中运行批量插入的方法:

exec('BULK INSERT dbo.' + @Table + ' FROM ''' + @PathFileName + ''' WITH (FIELDTERMINATOR ='','', FIRSTROW = 2, ROWTERMINATOR =''\n'')')

请注意,我已编辑了文件路径。

4 个答案:

答案 0 :(得分:5)

我收到此错误代码的原因是,在一个不幸的分裂时间,另一个程序访问此文件并锁定它!

我希望将来可以帮助别人。

答案 1 :(得分:0)

尝试使用双后退“\”转义“\”。通过iread it它被忽略,因为它不会产生具有以下字符的控制字符。反斜杠是SQL中的一个特殊字符。

答案 2 :(得分:0)

请确保您尝试导入的文件位于服务器上。或者修改路径以从网络共享中读取它们,即。 \\PC1\\imports\....

答案 3 :(得分:0)

请确保未在属性中选中目标文件夹。