【问题标题】:exec master..xp_cmdshell bcp create file only works on C:\ driveexec master..xp_cmdshell bcp create file 仅适用于 C:\ 驱动器
【发布时间】:2019-06-30 20:31:16
【问题描述】:

我正在尝试使用 xp_cmdshell bcp 创建通过存储过程生成的格式化文本文件。它有效,但仅在 C:\ 驱动器上。当我尝试在 E:\ 驱动器或共享驱动器上创建文件时,出现以下错误:

SQLState = S1000,NativeError = 0 错误 = [Microsoft][ODBC 驱动程序 13 对于 SQL Server]无法打开 BCP 主机数据文件

我确实确保 E:\ 驱动器或共享驱动器上存在相同的文件夹结构,但没有运气。同样的代码也适用于 E:\ 驱动器的不同服务器。我没有足够的技术来弄清楚两台服务器之间可能有什么不同。

我在 Management Studio / Sql Server Agent 中运行的代码:

declare @sql varchar(1024);
declare @bcp varchar(1024);
Declare @DateSuffix char(8)
SELECT @DateSuffix = cast(convert(CHAR,GETDATE(),112)as varchar(8)) 
declare @filename varchar(1024)

set @filename = 'C:\Blackline\SB\GL_' + @DateSuffix + '.txt'
set @sql = 'exec VoyagerX.dbo.COPT_uspVOYtoBlackLine_GL_Extract'
set @bcp = 'bcp "' + @sql + '" queryout "' + @filename + '"  -T -c  -S'   

exec master..xp_cmdshell @bcp

如果此信息有帮助,我正在使用服务帐户(我相信这是标准的)。如果这是权限或配置问题,请告诉我!

【问题讨论】:

    标签: sql-server-2012 bcp xp-cmdshell


    【解决方案1】:

    事实证明,我需要通过右键单击并通过安全性来授予对特定文件夹的服务帐户的完全访问权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-25
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多