erwin中文网站 > 最新资讯 > erwin怎么设置字段默认值 erwin生成SQL脚本时默认值丢失如何排查
教程中心分类
erwin怎么设置字段默认值 erwin生成SQL脚本时默认值丢失如何排查
发布时间:2026/10/16 13:16:39

  状态字段希望默认填0,创建时间希望自动记录当前时间,设置后导出的脚本里却找不到对应内容,这时需要分别检查模型定义和脚本生成设置。erwin怎么设置字段默认值,erwin生成SQL脚本时默认值丢失如何排查?默认值对象、字段关联和生成选项都要对应起来,单独建好一个默认值对象,还不代表目标字段已经使用它。

  一、erwin怎么设置字段默认值

 

  默认值需要按目标数据库支持的语法填写。数值、字符串和日期函数的写法不同,字段的数据类型也会影响表达式能否使用。

 

  1、确认物理模型与目标数据库

 

  ①切换到物理模型视图,打开【Actions】→【Target Database】,核对【Database】及对应版本。

 

  ②在模型资源管理器中右键目标字段,点击【Properties】,检查【Physical Name】和【Physical Data Type】。

 

  逻辑属性中的说明文字不能代替物理列的默认表达式。若需要修改目标数据库,应先保留模型副本,再检查转换后的字段类型和默认值,不能直接沿用原数据库函数。

 

  2、创建默认值对象

 

  ①打开【Model】→【Default Values】,在默认值编辑器中点击【New】。

 

  ②在【Physical Name】填写便于识别的名称,例如df_status_0;进入目标数据库页签,在【Value】填写表达式。

 

  ③数值默认值可填0,字符串常量使用单引号,例如'new';确认后点击【Close】。

 

  3、把默认值分配给字段

 

  创建对象与分配给字段是两个动作。例如,已经建立状态默认值,但没有在状态列中选用,生成脚本时仍不会作用到该列。

 

  ①打开目标字段的【Properties】,进入【Constraint】,在【Default】中选择刚创建的默认值对象。

 

  ②关闭编辑器后重新打开,确认【Default】仍是预期对象,并保存模型。

 

  ③打开【Actions】→【Schema】,进入【Preview】,按表名和字段名查找对应定义,检查是否包含DEFAULT内容。

 

  二、erwin生成SQL脚本时默认值丢失如何排查

 

  先看预览中是否已经缺失,再判断问题发生在模型导出还是脚本执行阶段。不要只在建表语句的一行里找默认值,部分定义可能通过后续语句添加。

 

  1、检查字段关联是否正确

 

  ①回到字段的【Constraint】,核对【Default】选中的对象,避免只建立了对象却未分配,或选中了名称相近的对象。

 

  ②打开关联的默认值编辑器,检查目标数据库页签中的【Value】,确认表达式没有留空。

 

  ③在【Where Used】查看默认值对象的使用位置,核对是否包含预期字段。

 

  默认值对象的名称用于识别对象,生成时采用的是表达式。名称里写着“默认0”,但表达式为空,不能据此认为已经设置完成。

  2、检查脚本生成选项和表范围

 

  ①打开【Actions】→【Schema】,进入【Option Selection】,检查当前使用的选项集。

 

  ②在列相关选项中启用【Default】或【DEFAULT Value】;若采用独立默认对象的生成方式,还应检查适用的【Create Default】选项。

 

  ③在【Table Filter】确认包含目标表,再进入【Preview】,搜索字段名、默认值对象名及DEFAULT关键字。

 

  生成选项随目标数据库而变化,不必寻找其他数据库才有的选项。若整张表都没出现在脚本中,应先处理表筛选范围;表和字段都有、只缺默认定义,再继续查默认值设置。

 

  3、升级模型后重新建立选项集

 

  旧模型升级或调整目标数据库后,原选项集可能不再适用。即使界面上已勾选默认值选项,也值得用重新建立的选项集进行比较。

 

  ①保留原模型副本,在【Option Selection】重新选择所需的表、列和默认值生成选项。

 

  ②点击选项集的【Save As】,另存一个新名称,不覆盖原选项集。

 

  ③使用新选项集重新【Preview】,与原脚本比较,确认默认值是否恢复。

 

  4、排除自定义模板影响

 

  ①在生成设置中检查【Database Template】,记录当前模板;在模型副本中点击【Reset Template】,恢复默认模板。

 

  ②保持字段定义和生成选项一致,重新查看【Preview】,比较默认值相关内容。

 

  如果默认模板能够输出、自定义模板不能输出,排查范围就可以缩小到模板。后续应检查模板中默认值的输出条件,避免只在最终SQL文件里补写,导致下次导出再次遗漏。

 

  三、erwin默认值生成后怎么验证

 

  脚本里出现DEFAULT,只说明定义已经输出,还要确认数据库接受了它,并且插入数据时按预期生效。

 

  1、在测试库核对表结构

 

  ①将预览脚本保存后,在测试数据库执行,查看默认约束相关语句是否成功,记录具体报错。

 

  ②打开数据库管理工具,核对目标表、字段类型和默认定义,同时确认连接的是预期数据库及架构。

 

  ③若执行的是变更脚本,检查是否包含默认值新增或修改内容,不要把完整建表脚本直接重复执行到已有表上。

 

  2、分别验证省略字段和显式赋值

 

  在SQL Server中,插入时省略有默认值的字段,可以使用其默认定义;显式写入NULL则不等于要求使用默认值,是否允许写入还取决于该列的空值约束。

 

  ①在测试表插入一条记录,省略待验证字段,并为其他必填字段提供合法值,查询该字段是否得到预期默认值。

 

  ②再插入一条显式指定该字段值的记录,对比结果,检查应用程序是否一直主动传入空值或其他值。

  总结

 

  erwin怎么设置字段默认值、erwin生成SQL脚本时默认值丢失如何排查,最终都要落实到物理列定义和数据库行为上。默认值适合表达稳定的建模约定,例如初始状态;涉及复杂业务条件时,还需要结合应用逻辑判断。团队共同维护模型时,保留目标数据库、生成选项集和模板的对应关系,能减少换人导出或版本升级后的差异。模型、脚本与测试结果一致,后续交付才有可核对的依据。如果有erwin产品选型、版本配置等方面的需求,欢迎联系咨询。

176 5129 0128