2009-08-12 2 views
1

У меня есть вид, который использует связанный сервер для извлечения данных с удаленного сервера в SQL Server. При каждом просмотре представления возвращаемые результаты различаются. Например, однократное выполнение может возвращать 100 строк записей, но во второй раз выполнения строки возвращаются в 120 строк. Любые идеи, в чем причина?Результаты, полученные с помощью связанного с ним сервера, могут отличаться?

+0

Какая версия SQL Server и какой уровень исправления? –

+0

SQL Server 2005 с пакетом обновления 2 (SP2) –

ответ

0

Данные на связанном сервере изменены между выполнением?

+0

Нет, данные на связанном сервере исправлены. Я получаю его для присоединения к локальному серверу. –

+0

Включается ли локальная таблица с изменением? –

+0

нет также ........... –

0

Является ли ваш SQL Server полностью исправленным? В SQL Server 2008 и 2005 исправлены ошибки, связанные с неправильными результатами запросов от связанных серверов.

Here один пример:

969997 FIX: Вы получаете неверный результат при запросе данных из связанного сервера, который создается с помощью индекса поставщика OLE DB в SQL Server 2005 или SQL Server 2008

+0

Нет, SQL Server 2005 SP3 не исправлен на моем SQL Server! Я попытаюсь сначала исправить его, а затем посмотреть, как это сделать. –

+0

Обязательно проверьте удаленный сервер тоже :) – KenJ

+0

Я установил как локальный, так и удаленный сервер вместе с SP3 и исправлением. Теперь возвращенные результаты меньше, чем есть, и несогласованность данных все еще происходит ...... –

0

Связанный ли сервер также SQL Server? Если нет, может быть, багги? Я видел нечетные результаты, например, из-за старого драйвера ODBC Informix. Можете ли вы запустить что-то похожее на SQL Profiler на связанном сервере, чтобы узнать, какую команду он получает?

1

Я стал свидетелем нечетных результатов связанного сервера, которые являются продуктом недетерминированности, написанного в самом SQL, I.e. a TOP запрос, написанный без предложения ORDER BY.

This problem, например, где chap имел несколько неповторимых внешних ключей, поступающих из источника таблицы в левой части связанного сервера INNER JOIN, и хотел, чтобы 10 строк из удаленного суб-запроса справа, где конечный результат был ограничен только 10 строками, когда он должен был быть больше 10 строк.

Обязательно дайте вашему SQL быстрый взгляд на такие раритеты.

0

Я не уверен, что такое ответ, но (при условии, что ваши подсчеты 100 и 120 точны) не можете ли вы захватить данные из двух прогонов и сравнить их? Это может дать вам некоторые подсказки относительно того, что происходит. Например, это полностью разные данные, или это дубликаты строк (в 120 рядах строк).