Вы когда-нибудь возвращали SQL Server 2008 набор результатов, отличный от SQL Server 2000? - PullRequest
3 голосов
/ 26 апреля 2011

Я не ищу помощи по фактическому коду моей хранимой процедуры (пока что так или иначе), но клиент прислал мне копию своей базы данных SQL Server 2000, в которой сообщалось, что конкретный процесс возвращал неверные результаты;Я восстановил базу данных на своем сервере (SQL Server 2008R2) и запустил процесс, и он дал правильные результаты.Имейте в виду, что нет внешнего интерфейса, который мог бы вызвать разницу - в обоих случаях я просто выполняю процедуру через менеджера предприятия и студию менеджмента.

Мне интересно, есть ли какие-либо известные различия, которые могут способствовать/ вызвать эту проблему?Этот конкретный процесс использует много условной логики, параметров по умолчанию и даже имеет курсор для выполнения некоторой циклической логики, но любые предложения по возможным областям, на которые нужно смотреть, были бы полезны.

Редактировать: чтобы уточнить, числовозвращаемые строки и столбцы одинаковы, но для конкретного столбца (для определенных строк в зависимости от значения поля данных) число в два раза больше, чем должно быть.2008 дает «правильный» ответ.«2000» дает неправильный ответ, то есть двойную сумму.

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Есть много вещей, которые могут вызвать эту проблему, включая (но не ограничиваясь) параметры сортировки и настройки системы. Если бы мы увидели SP, мы могли бы обнаружить виновника. В дополнение к изменениям в развертывании существуют различия между версиями, см.

http://msdn.microsoft.com/en-us/library/ms143179(v=sql.100).aspx

и

http://msdn.microsoft.com/en-us/library/ms143179.aspx

2 голосов
/ 26 апреля 2011

Представления с упорядочением по не будут упорядочены в SQl Server 2008, см. Здесь: Создание отсортированного представления в SQL Server 2005 и SQL Server 2008

Когда вы говорите неверные результаты,что вы имеете в виду?Язык установки SQl Server также может быть важным фактором, если вы передаете даты в виде строк и не используете ISO / безопасные форматы

Также могут быть настройки ANSI для соединения, поступающего в DB вашего клиента

возможно, они отключены ANSI_NULLS вместо ON

...