exec master..xp_cmdshell bcp create file работает только на диске C: \ - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь создать форматированный текстовый файл, сгенерированный с помощью хранимой процедуры, используя 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

Если эта информация поможет, яЯ использую учетную запись службы (я считаю, что является стандартным).Если это проблема с разрешением или конфигурацией, пожалуйста, дайте мне знать!

1 Ответ

0 голосов
/ 06 февраля 2019

Оказывается, мне нужно было предоставить полный доступ к служебной учетной записи определенной папке, щелкнув правой кнопкой мыши и пройдя через систему безопасности.

...