Автоматическое переименование столбцов в 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 

Благодарность принадлежит Ричарду Кьеру, который предоставил оригинальный код. Спасибо, Ричард.

Существует гораздо более простой способ для этого.

  1. Перейти к базе данных - создать базу данных - сохранить созданный файл sql.
  2. Используйте текстовый редактор для переименования или любых необходимых изменений.
  3. Перейти к базе данных - обновить модель из базы данных - указать созданный файл sql.

Инструмент показывает обновленную модель.

Можно написать VBScript для траления объектной модели, поиска столбцов, являющихся членами первичных ключей, и переименования их.

Или же:

  • Можно вызвать список столбцов (щелкните правой кнопкой мыши на пакете или модели, Список -> Столбцы)

  • Нажмите control-U (или нажмите на значок воронки и карандаша), чтобы вызвать Customize Columns and Filter.

    • Найдите запись первичного ключа в столбце "Заголовок столбца".
    • В выражении фильтра установите для выражения значение True.
    • Проверьте столбец U для записи первичного ключа и убедитесь, что другие строки этого не проверяли.
    • Нажмите Применить.

Теперь вы должны увидеть все столбцы, которые являются частью ключей. Аналогичным образом вы можете фильтровать с подстановочными знаками для несовместимых имен. Вы также можете выбрать несколько строк и переименовать их одновременно.

Другие вопросы по тегам