По ходу ковыряния демо-базы AX 2009 понадобилось на копии базы воссоздать индексы на таблицах руками (по схеме демо-базы), а не за счет синхронизации. При этом обнаружилось, что при создании некоторых уникальных индексов СУБД ругается примерно так:
Цитата:
Achtung! Максимальная длина ключа составляет 900 байт. У индекса 'ТАКОГО-ТО' максимальная длина составляет <более 900> байт. Для некоторых комбинаций больших значений [полей] операция insert/update завершится неудачей.
Такая ругань идет как минимум на следующие индексы (под индексом приведена длина ключа по мнению СУБД, а также перечень и длина полей индекса в символах):
AifEndpointActionPolicy.AifEndpointExternalActionIdx
1088 = EndpointId (30) + ExternalActionOverride (255) + ActionId (255)
AifService.AifExternalNameIdx
1020 = Namespace (255) + ExternalName (255)
DEL_AifEndpointActionPolicy.AifEndpointExternalActionIdx
1088 = EndpointId (30) + ExternalActionOverride (255) + ActionId (255)
PBAReuseBOMRoute.PBASearchIdx
1788 = PBAId (20) + SearchString (870)
PBATableVariableVal.PBAValueIdx
1152 = PBAId (20) + PBAVar (40) + Value (512)
SRSModelFieldCache.LocalizedName
1200 = EntityModelId (200) + ParentFieldFolder (200) + LocalizedName (200)
SRSModelForeignKeyCache.RoleIndex
1200 = TableName (200) + IndexName (200) + FieldList (200)
XBRLTaxonomyTargetNamespace.IndexIdx
1048 = TaxonomyId (20) + Value (500)
Вот интересно, это только у меня такое вылезает? Отчего синхронизация молчит о подобных вещах? Кто-нить сталкивался с тем, что из-за таких индексов данные реально не вставляются/обновляются?
DAX 2009 SP1, ядро 5.0.1000.52, приложение 5.0.1001.176, Ms SQL Server 2008 SP1.