Project Server 2013: проблема при обновлении, если ваш язык SQL – не английский
Благодарим Брайана Смита (Brian Smith - MSFT ) за публикацию статьи в своем блоге и Диану Бэлан (Diana Balan) за ее работу над решением сбоя обновления PowerShell при миграции с Project Server 2010 на Project Server 2013. Мы уже решили эту проблему, и, кроме того, нашли обходной путь для ее предотвращения. Проблема появляется при запуске команды ConvertTo-SPProjectDatabase, после чего случается сбой с подобным сообщением:
Это случается, если вы изменяли язык SQL для пользователя, который запускает команду PowerShell в следующем диалоговом окне в SQL Management Studio (или при настройке языка в SQL):
В нашем случае установленный язык – немецкий. В результате мы получаем ошибку на немецком языке в логе ULS, начало которой говорит:
Что даже со слабым знанием немецкого языка из базовой школьной программы дает понять, что что-то не так с форматом даты и времени. На самом деле проблема заключается в том, что использование немецкого языка (и других) сменяет формат даты ISO, что также влияет на время и дату. Если вы запустите трассировку, вы получите отчет WHILE @CurrentTimeByDay <= ‘2149-12-31′ и именно это вызывает ошибку.
Обходной путь для решения этой проблемы – установить английский язык пользователю, который запускает команду.
Чтобы вам было проще найти решение проблемы ниже мы приводим лог ULS на русском языке:
- Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.