Поток данных служб SSIS изменяет порядок записей

Я думал, что задал аналогичный вопрос в порядке SQL by и левое внешнее соединение имеет неправильный порядок, но это немного отличается. Я получаю данные из другой базы данных SQL-Server 2005, используя SSIS и стандартный поток данных. Записи, которые я получаю, находятся в другом порядке, чем в исходной таблице (на самом деле это представление). В более старых DTS порядок не меняется.

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

Есть ли причина, по которой данные изменяют порядок при импорте? Есть ли обходной путь?

Вот почему важен порядок. Это для картографического приложения, и атрибуты и формы должны совпадать. Если порядок изменится, то элементы не будут совпадать должным образом. К сожалению, я не могу определить какой-либо порядок данных, и я подозреваю, что предыдущий кодер предположил постоянный порядок, и это все, что было важно. Порядок с использованием служб SSIS не совпадает с порядком и никогда не задается явно.


person thursdaysgeek    schedule 13.05.2009    source источник


Ответы (1)


Порядок записей, возвращаемых оператором SQL Server SELECT, никогда не гарантируется без явного предложения ORDER BY. Вам просто повезло, что набор данных, выбранный DTS, вернул строки в нужном вам порядке.

Это вдвойне верно, если источником является представление, поскольку, как вы говорите, представления не имеют неявного порядка. Даже добавление TOP 100 PERCENT ... ORDER BY не гарантирует порядок, в котором фактически возвращается результирующий набор (см. .90).aspx" rel="nofollow noreferrer">книги в Интернете запись).

Единственное исправление — добавить предложение ORDER BY к вашему запросу в потоке данных.

Из вашего вопроса не совсем ясно, есть ли у вас группа столбцов в представлении, которая гарантированно возвращает нужный вам порядок - если это так, обновите вопрос, указав более подробную информацию об исходных данных, так как есть несколько способов подойти к проблеме.

person Ed Harper    schedule 15.05.2009
comment
Да. Я предполагаю, что мне нужно будет явно установить порядок и заставить кого-то регенерировать соответствующие формы, чтобы они соответствовали атрибутам. - person thursdaysgeek; 16.05.2009