Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
XTraktor Member Откуда: Сообщений: 5 |
Добрый день, коллеги! У меня SQL server 12.0.5589.7 Выполняю скрипт, который последовательно берет из папки на диске файлы с запросами, и выполняет на определенной базе. Вот кусочек: WHILE(@MIN <= @MAX) BEGIN SELECT @HFFolderName=HFFolderName,@ExecFileName=ExecFileName FROM [dbo].[HFDetails] WHERE ID=@MIN SET @Sqlcmd='SQLCMD -E -b -S '+@ServerName+' -d '+@EngagementDb+ ' -i "'+@currentdirectory+'Database scripts\'+@HFFolderName+'\'+@ExecFileName+'"' SET @SQLString2 ='exec @Ret=master.dbo.xp_cmdshell ' SET @SQLString2=@SQLString2+''''+@Sqlcmd+'''' INSERT INTO @tempError EXEC sp_executesql @SQLString2,@ParmDefinition,@Ret=@OutRet OUTPUT IF @OutRet=0 BEGIN SET @TimeStamp=CONVERT(NVARCHAR(25),GETDATE(),121) UPDATE E1.EngagementDBInstallationDetails SET Installed=1,InstallationEndTime=GETDATE() WHERE InstallationName=@HFFolderName AND FileName=@ExecFileName PRINT @TimeStamp+' : Successfully executed Database scripts\'+@HFFolderName+'\'+@ExecFileName PRINT ' ' END ELSE BEGIN SET @TimeStamp=CONVERT(NVARCHAR(25),GETDATE(),121) SELECT @StrErr=@StrErr+CHAR(13)+CHAR(10)+Error FROM @tempError WHERE Error IS NOT NULL UPDATE E1.EngagementDBInstallationDetails SET Installed=2,InstallationEndTime=GETDATE() WHERE InstallationName=@HFFolderName AND FileName=@ExecFileName PRINT @TimeStamp+' : Error while executing Database scripts\'+@HFFolderName+'\'+@ExecFileName PRINT ' ' PRINT @StrErr PRINT ' ' BREAK; END DELETE FROM @tempError SET @MIN=@MIN+1 END В неопределенный момент процесс крашится с ошибкой ACCESS DENIED. Всегда на разных файлах. Такое впечатление, что периодически пропадает доступ к базе. Может ли быть такое? |
12 дек 18, 16:08 [21761778] Ответить | Цитировать Сообщить модератору |
StarikNavy Member Откуда: Москва Сообщений: 2395 |
XTraktor, может ACCESS DENIED это он не про базу, а про файлик? |
12 дек 18, 16:09 [21761782] Ответить | Цитировать Сообщить модератору |
Danion Member Откуда: Москва Сообщений: 242 |
XTraktor, А точный текст ошибки можно? Например access denied(5) - это нет доступа к файлу в Винде. |
12 дек 18, 16:23 [21761804] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Не надо ошибки пересказывать своими словами :-) |
||
12 дек 18, 16:33 [21761816] Ответить | Цитировать Сообщить модератору |
XTraktor Member Откуда: Сообщений: 5 |
alexeyvg, Ошибка возвращается из этой процедуры:INSERT INTO @tempError EXEC sp_executesql @SQLString2,@ParmDefinition,@Ret=@OutRet OUTPUT точный текст Access is denied. Подозреваю что это вывод SP_EXECUTESQL В логах я не вижу ошибок, поэтому не могу точно сопоставить c конкретным событием. Если у Вас есть мысли как отдебажить этот момент, буду очень благодарен :) |
12 дек 18, 17:08 [21761864] Ответить | Цитировать Сообщить модератору |
XTraktor Member Откуда: Сообщений: 5 |
StarikNavy, Возможно, только непонятно почему каждый раз на новом файле пададает, причем может на том, который уже нормально выполнялся в предыдущих попытках. Файлов 140 штук. Может на 5-м вывалиться а может на 120-м. |
12 дек 18, 17:40 [21761920] Ответить | Цитировать Сообщить модератору |
XTraktor Member Откуда: Сообщений: 5 |
Если в вышеприведенном кусочке кода закомментить BRAKE, скрипт после ошибки идет длольше по списку. И таких фейлов может быть несколько за один проход. Каждый раз разное количество на разных файлах. |
12 дек 18, 17:49 [21761936] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
12 дек 18, 18:01 [21761952] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
XTraktor, файл кто-то держит на запись или антивирь. |
12 дек 18, 18:25 [21761984] Ответить | Цитировать Сообщить модератору |
XTraktor Member Откуда: Сообщений: 5 |
Владислав Колосов, В файлы ничего не пишется. Антивирь отключал.... |
12 дек 18, 18:38 [21761998] Ответить | Цитировать Сообщить модератору |
DaniilSeryi Member Откуда: Сообщений: 1766 |
Коллеги, а другой процесс начал копировать / создавать новый файл или перезаписывать / дополнять существующий файл, а код ТС-а как раз этот файл попробовал обработать - не это ли причина? |
12 дек 18, 22:43 [21762214] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |