Project Server 2013: проблема при обновлении, если ваш язык SQL – не английский

Благодарим Брайана Смита (Brian Smith - MSFT ) за публикацию статьи в своем блоге и Диану Бэлан (Diana Balan) за ее работу над решением сбоя обновления PowerShell при миграции с Project Server 2010 на Project Server 2013.  Мы уже решили эту проблему, и, кроме того, нашли обходной путь для ее предотвращения. Проблема появляется при запуске команды ConvertTo-SPProjectDatabase, после чего случается сбой с подобным сообщением:

1

Это случается, если вы изменяли язык SQL для пользователя, который запускает команду PowerShell в следующем диалоговом окне в SQL Management Studio (или при настройке языка в SQL):

SSMS_De_thumb

В нашем случае установленный язык – немецкий. В результате мы получаем ошибку на немецком языке в логе ULS, начало которой говорит:

3

Что даже со слабым знанием немецкого языка из базовой школьной программы дает понять, что что-то не так с форматом даты и времени. На самом деле проблема заключается в том, что использование немецкого языка (и других) сменяет формат даты ISO, что также влияет на время и дату. Если вы запустите трассировку, вы получите отчет WHILE @CurrentTimeByDay <= ‘2149-12-31′ и именно это вызывает ошибку.

Обходной путь для решения этой проблемы – установить английский язык пользователю, который запускает команду.

Чтобы вам было проще найти решение проблемы ниже мы приводим лог ULS на русском языке:

  • Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.
Оригинал статьи опубликован на английском языке здесь.