exec master..xp_cmdshell bcp create file работает только на диске C:\
Я пытаюсь создать форматированный текстовый файл, созданный с помощью хранимой процедуры с использованием 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 ответ
Оказывается, мне нужно было предоставить полный доступ к служебной учетной записи определенной папке, щелкнув правой кнопкой мыши и пройдя через систему безопасности.