AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.12.2022, 16:49   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Пока получается, что непосредственно в среде 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
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Logger (3), trud (5), iCloud (2).
Теги
dax2012, index, sql

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Получить имя индекса в БД demianimp DAX: Программирование 2 16.08.2015 06:18
Как узнать имя выведенного отчета eugenet DAX: Программирование 3 25.08.2010 19:59
Axapta SP3 и Sql 2005 каких ожидать проблем mike1 DAX: Администрирование 1 30.11.2006 17:38
mazzy: Сравнительное тестирование производительности Microsoft Axapta v.3.0. CУБД Microsoft SQL Server 2005 и Microsoft SQL Server 2000 Blog bot DAX Blogs 0 28.10.2006 17:22
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:33.