Есть ли разница между SQL Server r2 с обратной совместимостью MSI VS скачал SQL Server 2005 с обратной совместимостью MSI? - PullRequest
2 голосов
/ 09 июля 2011

Я недавно установил sql server 2008 r2 с выбранной опцией для установки обратной совместимости (добавление удаления программ показывает, что установлена ​​обратная совместимость) Затем я запускаю свой сценарий sql для обновления старой базы данных, но он выдает исключение типа «В запросе используется внешнее объединение без ANSI» (точную ошибку см. В изображении). (Профилировщик SQL сказал: SQLDMO_1 выдает ошибку).

enter image description here

Но когда я явно установил обратную совместимость SQLServer (скачанный с сайта SQLServer2005_BC.msi) и выполнил ту же модернизацию, он успешно работал.

Я не знаю, почему это происходит?

Я сравнил оба файла SQLDMO.DLL (Sql servere для установки один и SQL-сервер один), но оба, похоже, в порядке. Кто-нибудь получал такой же добрый вопрос или какое-либо предложение?

UPDATE: Нет, это не было проблемой, связанной с установкой обратной совместимости. Недавно произошла та же самая ошибка, и я думал, что это будет решено установкой Baki-совместимой MSI, но это не решается.

Так что причина все еще в ожидании.

Ответы [ 2 ]

1 голос
/ 27 июля 2011

SQL Server 2008+ не поддерживает соединения ANSI 89 старого стиля, то есть *= или =*.Их необходимо заменить на левое и правое внешние объединения перед обновлением до SQL Server 2008 или выше.Любой код, содержащий их, не может быть скомпилирован без возникновения ошибки.

SQL Server 2005 является самой высокой версией, которая поддерживает объединения старого стиля.

Режимы совместимости 80/90/100в основном для случаев, когда новое ключевое слово используется устаревшей базой данных.Это приведет к синтаксической ошибке, так как при снижении режима совместимости удаляются новые функциональные возможности / зарезервированные ключевые слова из синтаксического анализатора, что дает время для их удаления из базы данных.

1 голос
/ 10 июля 2011

Я не думаю, что ошибка, которую вы получаете, связана с компонентами обратной совместимости;это больше похоже на проблему, когда база данных, к которой вы выполняете запросы, настроена на режим совместимости 80 против 90 или 100, как следует из ошибки, выполнение запроса будет работать, если оно будет установлено на 80, но не на 90 или 100;если вы сделали новую установку sql, все базы данных будут установлены на 100;если вы сделали обновление, они остались бы на более старой версии, 80, если она была обновлена ​​с SQL 2000.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...