如何在Enterprise Architect中正确提取数据库表列的可空性?
正确提取Enterprise Architect数据库表列的可空性
你之前对LowerBound和UpperBound的理解其实是个误区——这两个属性是用来定义数组或集合类型字段的元素数量范围的,和数据库列的可空性完全不相关。EA里专门有一个属性用来标记列是否允许NULL,下面分两种场景告诉你怎么正确获取:
1. 使用EA内置脚本提取(以VBScript为例)
在EA的脚本编辑器里,你可以遍历表的列,直接访问列的AllowNulls属性,它会返回布尔值:True表示允许NULL,False表示不允许。
示例代码:
Dim table as EA.Element Set table = Repository.GetElementByGUID("{你的表元素GUID}") ' 替换成目标表的GUID Dim col as EA.Attribute For Each col In table.Attributes ' 判断列是否允许NULL If col.AllowNulls Then Session.Output(col.Name & " 允许NULL") Else Session.Output(col.Name & " 不允许NULL") End If Next
2. 通过EA API提取(以C#为例)
如果是用外部程序调用EA API,同样是访问EA.Attribute对象的AllowNulls属性:
示例代码:
using EA; Repository repo = new Repository(); repo.OpenFile(@"你的EA模型路径.eap"); Element table = repo.GetElementByGUID("你的表元素GUID"); foreach (Attribute col in table.Attributes) { bool isNullable = col.AllowNulls; Console.WriteLine($"{col.Name} 允许NULL: {isNullable}"); } repo.CloseFile();
验证设置是否正确
另外,你可以在EA的UI里确认列的可空性设置:打开表的属性窗口,切换到「Columns」标签页,查看对应列的「Allow Nulls」复选框是否勾选——这个状态就是AllowNulls属性对应的取值。
内容的提问来源于stack exchange,提问作者Ruudjah
相关产品推荐
相关产品推荐

