Я уже некоторое время борюсь с этой ошибкой. У меня есть команда ниже:
-- Declare main variables
DECLARE @command VARCHAR(500);
DECLARE @currentPath VARCHAR(100);
SELECT @currentPath = '\\SERVERNAME.Domain\Temp\';
DECLARE @currentFile VARCHAR(100);
DECLARE @currentDate VARCHAR(100) = REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR, GETDATE(), 126),'-',''),'T','T'),':','');
-- BILL OF MATERIALS
SET @currentFile = 'File'
TRUNCATE TABLE SampleData.iTable;
SET DATEFORMAT dmy;
SET @command = ' BULK INSERT SampleData.iTable'
SET @command = @command + ' FROM ''' + @currentPath + @currentFile + '.csv'''
SET @command = @command + ' WITH '
SET @command = @command + ' (FIRSTROW = 2, '
SET @command = @command + ' FIELDTERMINATOR = '';'', '
SET @command = @command + ' ROWTERMINATOR = ''\n'', '
SET @command = @command + ' MAXERRORS = 99999, '
SET @command = @command + ' ERRORFILE = ''' + @currentPath + @currentFile + '_ERROR_' + @currentDate + '.csv'','
SET @command = @command + ' TABLOCK '
SET @command = @command + ' ) '
EXECUTE (@command)
Она хорошо работает, если я запускаю ее из Management Studio внутри SQL Server VM. Если я запустил эту массовую вставку из студии управления со своего компьютера или любого другого компьютера, подключенного к тому же экземпляру сервера SQL, с тем же пользователем, той же базой данных и всем остальным ... Я получаю сообщение об ошибке ниже:
Невозможно массовая загрузка, потому что файл "\ SERVERNAME.Domain \ Temp \ File.csv" не может быть открыт. Код ошибки операционной системы 5 (Доступ запрещен.).
Возможная причина в том, что пользователь находится в другом домене, чем SQL Сервер и общий путь .. но не уверен, что это тоже проблема, потому что я может успешно запустить BULK INSERT с SQL серверной виртуальной машины
Другая возможная причина - делегирование активного каталога, но у меня нет разрешения на проверку, а также почему это будет делегирование, если я могу запустить команду с сервера SQL VM?
Любой совет приветствуется!
Спасибо
Фелипе Карлессо