Показать сообщение отдельно
Старый 31.01.2007, 13:25   #1  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
? Порядок записей при вставке
Доброго времени суток!

Последние три дня искал решение для такой проблемы (и только что решил): при вставке в таблицу InventJournalTransTemplate (создана на var слое) записи становились не последовательно (в порядке вставки), а в соответствии с одним из индексов (не кластерный, не Primary в Аксапте). Если отключаю этот индекс то порядок становился совсем необъяснимым. На таблице в Аксапте не было PrimaryIndex, нет и кластерного индекса.

Существует три индекса: TemplateIdx (TransTemplateId), JournalIdx(JournalId), JournalInventDimIdx (JournalId, InventDimId)

При вставке в таблицу записи становились в порядке соответствующим (сортируются по полям индекса) JournalInventDimIdx.

Что увидел на SQL Srv:
I_30008TEMPLATEIDX DATAAERAID, TRANSTEMPLATEID
I_30008JOURNALIDX DATAAERAID, JOURNALID
I_3008JOURNALINVENTDIMIDX DATAAREAID, JOURNALID, INVENTDIMID, RECID

Интересно, что SQL Srv в индекс I_3008JOURNALINVENTDIMIDX добавил RecId, хотя в Аксапте его нет. Как я понял, SQL Srv добавил RecId для того чтобы сделать индекс уникальным и использовать как PrimaryKey.

Проблему решило добавление RecId на индекс TemplateIdx в Аксапте + сделал его уникальным и Primary.

Вопрос -- правильно ли я поступил?