【发布时间】:2013-01-11 09:24:04
【问题描述】:
由于某些奇怪的原因,我在执行批量插入时遇到问题。
BULK INSERT customer_stg
FROM 'C:\Users\Michael\workspace\pydb\data\andrew.out.txt'
WITH
(
FIRSTROW=0,
FIELDTERMINATOR='\t',
ROWTERMINATOR='\n'
)
在阅读 this 后,我确信我已经正确设置了我的用户角色,正如它所说...
bulkadmin 固定服务器角色的成员可以运行 BULK INSERT 语句。
我已为 Windows 身份验证正确设置了 Login Properties(如下所示)。以授予对 bulkadmin 的服务器范围权限
(来源:iforce.co.nz)
并且命令EXEC sp_helpsrvrolemember 'bulkadmin'告诉我上面的信息是成功的,当前用户Michael-PC\Michael有bulkadmin权限。
(来源:iforce.co.nz)
但是,尽管据我所知,我已经正确设置了所有内容,但我仍然收到错误消息。直接从 SQL Server Management Studio 执行批量插入。
消息 4861,第 16 层,状态 1,第 2 行
无法批量加载,因为无法打开文件“C:\Users\Michael\workspace\pydb\data\andrew.out.txt”。操作系统错误代码 5(访问被拒绝。)。
这没有意义,因为显然bulkadmins 可以运行该语句,我是否打算重新配置bulkadmin 的工作方式? (我迷路了)。关于如何解决它的任何想法?
【问题讨论】:
-
听起来问题出在 SQL Server 外部。可以用记事本打开文件吗?
-
是的,我可以在记事本中打开它。
-
如果服务器不是本地的,social.msdn.microsoft.com/Forums/en/transactsql/thread/… 可能是相关的
-
现在我只是尝试重新安装 SQL Server,因为它在为什么我被限制访问文件时没有逻辑意义。
-
你能否设置文件的路径,使其可以从网络访问,比如“Michael-PC\C$\...\Andrew.out.txt”并将其传递给命令行?
标签: sql-server tsql bulkinsert