Пока получается, что непосредственно в среде SQL имя индекса не хранится и его значение проще сконструировать самостоятельно
X++:
/*
Имя индекса в SQL
Пример: I_007CustomerPaymentFeeLedgerDimensionI7 для таблицы BankAccountTable
1. "I_" - константа (буква i). Указывается у всех индексов
2. 007 - значение TableId, но не менее 3 знаков. Недостающая длина дополняется ведущими нулями.
3. CustomerPaymentFeeLedgerDimensionI - имя индекса в Axapta. Имя может быть обрезано с конца. См п.4
4. 7 - если общая длина из первых 3 частей превышает 40 символов, то в конец добавляется значение Id индекса как есть,
а общая длина имени уменьшается до 40 символов за счет обрезания концевой части имени индекса в Axapta (п.3)
*/
select
t2.AXID as tabId,
t2.NAME as tableName,
t1.AXID as indexId,
t1.NAME as indexName,
iif(len('I_' + format(t2.AXID, 'd3') + t1.NAME) <= 40
,'I_' + format(t2.AXID, 'd3') + t1.NAME
,substring('I_' + format(t2.AXID, 'd3') + t1.NAME, 1, 40 - len(cast(t1.AXID as nvarchar(10)))) + cast(t1.AXID as nvarchar(10))
) as indexNameSQL
from SYSMODELELEMENT t1
join SYSMODELELEMENT t2 on t2.RecId = t1.PARENTMODELELEMENT and t2.ELEMENTTYPE = 44
where t1.ELEMENTTYPE = 43
and t2.Name = 'BankAccountTable'
--and t1.Name = 'CustomerPaymentFeeLedgerDimensionIdx'
order by t2.name, t1.Name