Database design Sybase PowerDesigner更改许多(查找/替换/转换)数据项';s数据类型

Database design Sybase PowerDesigner更改许多(查找/替换/转换)数据项';s数据类型,database-design,sybase,powerdesigner,Database Design,Sybase,Powerdesigner,我在PowerDesigner中有一个相对较大的概念数据模型。 生成物理数据模型并查看DBMS数据类型后,我需要更新每个数据项的所有数据类型(数字/文本) 我想在概念数据模型中进行查找/替换,或者在创建物理数据模型时以某种方式映射到不同的数据类型。例如,将文本->Clob的自动转换更改为文本->NVARCHAR(20) 谢谢 我不知道有什么“标准”的查找和替换,但这同样有效。您是否对您的模型运行过VBScript?如果没有,请让我知道,但如果有,请尝试以下其中一种: 对于概念模型: Set md

我在PowerDesigner中有一个相对较大的概念数据模型。 生成物理数据模型并查看DBMS数据类型后,我需要更新每个数据项的所有数据类型(数字/文本)

我想在概念数据模型中进行查找/替换,或者在创建物理数据模型时以某种方式映射到不同的数据类型。例如,将文本->Clob的自动转换更改为文本->NVARCHAR(20)


谢谢

我不知道有什么“标准”的查找和替换,但这同样有效。您是否对您的模型运行过VBScript?如果没有,请让我知道,但如果有,请尝试以下其中一种:

对于概念模型:

Set mdl=ActiveModel

FOR EACH TAB IN MDL.Entities
   IF (not tab.isShortcut) THEN
      FOR EACH COL IN TAB.ATTRIBUTES
         IF COL.DATATYPE = "TXT" THEN
            COL.DATATYPE = "VA20"
         END IF
      NEXT
   END IF
NEXT
基本上,它将查看所有实体的所有属性,如果数据类型为“TXT”(文本),它将更改为“VA20”(变量字符(20))

对于物理模型:

Set mdl=ActiveModel

FOR EACH TAB IN MDL.Tables
   IF (not tab.isShortcut) THEN
      FOR EACH COL IN TAB.COLUMNS
         IF COL.DATATYPE = "TEXT" THEN
            COL.DATATYPE = "NVARCHAR(20)"
         END IF
      NEXT
   END IF
NEXT

从我的头顶:

打开元模型编辑器并更改正在使用的DBMS的数据类型映射

您可以在Sybase提供的元模型定义文件中对此进行修改,也可以“克隆”(另存为…)或扩展它(并保持原始文件不变-这是推荐的方法)


我可以说得更具体一些(确切地说是如何做到这一点的),不过这篇文章已经很老了。因此,我最好等待问题作者的反馈。

如果您想将所有CLOB更改为NVARCHAR(20),另一个简单的方法是确保您位于主物理图上,并转到模型->列。。。然后按数据类型对列表进行排序,突出显示包含要更改的数据类型的所有列。将选择中的第一个更改为新的数据类型,所有突出显示的列都将更改

不,我还没有对模型运行VBScript,但这正是我要找的。然而。。。我刚刚将该产品注册为开发人员版本,不再能够创建概念模型,只剩下物理模型。物理模型中没有MDL.Entities,我看不到任何类似的东西。思想?“对象不支持此属性或方法:‘MDL实体’(0x800 A01B6),在第3行“您可以考虑使用域,下次您需要执行这样的全局替换时……