Автоматическое переименование столбцов в PowerDesigner LDM/PDM
Я хочу переименовать столбцы в PowerDesigner LDM/PDM в соответствии с состоянием основного флажка. Чтобы быть более конкретным, я хочу, чтобы столбец переименовывался из "oldname" в "id_oldname", если установлен флажок "Primary".
Я думаю, что это возможно с помощью специального скрипта проверки / автофиксации, подобного скрипту в "MSSQLSRV2008::Profile\Column\Custom Checks\Identity Seed and Increment validity", но я действительно не эксперт по VBScript:)
Есть ли простой способ добиться этого в PowerDesigner 15?
3 ответа
Решение довольно простое. К сожалению, не безупречный, потому что PowerDesigner не может выполнить обработчик события в некоторых случаях (по неизвестной причине). Небольшой VBScript ниже должен быть в состоянии справиться с этим. Файл расширенного определения модели должен быть создан и присоединен к проекту. Сценарий является обработчиком события Validate для метакласса Table (хотя это скорее автофикс, чем проверка).
Function %Validate%(obj, ByRef message)
' Implement your object validation rule on <parent> here
' and return True in case of success, False otherwise with a message
dim col
for each col in obj.columns
if col.Primary = true then
if left(col.name,3) <> "id_" then
With col
.name = "id_" & .name
.SetNameAndCode .Name, "", True
End With
end if
else
if left(col.name,3) = "id_" then
with col
.name = right(.name, len(.name)-3)
.SetNameAndCode .Name, "", True
end with
end if
end if
next
%Validate% = True
End Function
Благодарность принадлежит Ричарду Кьеру, который предоставил оригинальный код. Спасибо, Ричард.
Существует гораздо более простой способ для этого.
- Перейти к базе данных - создать базу данных - сохранить созданный файл sql.
- Используйте текстовый редактор для переименования или любых необходимых изменений.
- Перейти к базе данных - обновить модель из базы данных - указать созданный файл sql.
Инструмент показывает обновленную модель.
Можно написать VBScript для траления объектной модели, поиска столбцов, являющихся членами первичных ключей, и переименования их.
Или же:
Можно вызвать список столбцов (щелкните правой кнопкой мыши на пакете или модели, Список -> Столбцы)
Нажмите control-U (или нажмите на значок воронки и карандаша), чтобы вызвать Customize Columns and Filter.
- Найдите запись первичного ключа в столбце "Заголовок столбца".
- В выражении фильтра установите для выражения значение True.
- Проверьте столбец U для записи первичного ключа и убедитесь, что другие строки этого не проверяли.
- Нажмите Применить.
Теперь вы должны увидеть все столбцы, которые являются частью ключей. Аналогичным образом вы можете фильтровать с подстановочными знаками для несовместимых имен. Вы также можете выбрать несколько строк и переименовать их одновременно.