【发布时间】:2018-03-13 13:53:35
【问题描述】:
运行批量插入时
BULK INSERT MyDatabase.dbo.MyTable
FROM '\\Mylaptop\UniversalShare\SQLRuleOutput.csv'
WITH (FIRSTROW = 2, FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
在远程 SQL Server 上出现此错误:
"无法批量加载,因为文件 无法打开“\MyLaptop\UniversalShare\SQLRuleOutput.csv”。 操作系统错误代码 5(访问被拒绝。)。”
- 共享对所有人开放。
- 我已在连接到同一共享的那个 SQL Server 上运行 PowerShell
Invoke-SQLCMD脚本,因此服务器可以看到该共享。 - 无论我是直接在 SQL Server 上将其作为 T-SQL 运行,还是通过 PowerShell
Invoke-SQLCMD(这是我的预期方法)运行,此Bulk Insert语句都会失败并出现相同的错误。
这个问题很相似,Cannot bulk load. Operating system error code 5 (Access is denied.),但在我的情况下,共享对所有人开放,所以权限不应该成为问题,而且共享肯定在不同的地方(我的用于 POC 开发的笔记本电脑)而不是 SQL Server。
有谁知道为什么会发生这个错误,或者如何解决它?
谢谢,
康拉德
【问题讨论】:
-
PS:如果我将所有数据编写为 Insert 语句,那么 SQL Server 会正确导入所有数据,但我的源数据是 .csv 格式。
标签: sql-server bulkinsert