Ошибка преобразования varchar в Int - Sql на сервере против SQL на локальном ПК

У меня есть запрос, требующий преобразования Varchar в INT. В настоящее время я не публикую сам запрос, так как не думаю, что проблема там.

Я настраиваю запрос на своем домашнем ПК, используя резервную копию из файла SQL сервера. У меня Server 2008 R2 установлен на обеих машинах.

Запрос выполняется на моем компьютере 100%, но выдает ошибку при преобразовании varchar в INT при запуске на сервере.

Я думаю, есть где-то настройка, которая не совпадает? Я проверил региональные настройки и проблема не там. есть идеи?

1 ответ

Проблема заключается в том, как оценивается запрос. У вас нет гарантии того, в каком порядке будут оцениваться части запроса, поэтому на одном компьютере после преобразования может произойти фильтр, а на другом - может. Или условия предложения WHERE могут оцениваться в другом порядке

SQL декларативный, а не процедурный. С SQL вы спрашиваете о том, что вы хотите, а оптимизатор запросов учитывает то, что он считает нужным. На процедурном языке (C#, Java и т. Д.) Вы будете контролировать порядок выполнения.

Причина полностью описана здесь: зачем использовать Select Top 100 Percent?

Другие вопросы по тегам