在您将命名 ROW 类型作为继承层次结构中子类型创建之前,请检查以下消息:
- 验证您已授权创建新的数据类型。必须在数据库上拥有 Resource 特权。可以在 sysusers 系统目录表中找到此信息。
- 验证超类型存在。可以在 sysxtdtypes 系统目录表中找到此信息。
- 验证您已授权创建该超类型的子类型。必须拥有超类型上的 Under 特权。可以在 sysusers 系统目录表中找到此信息。
- 验证您已命名 ROW 类型声明的名称是唯一的。在兼容 ANSI 的数据库中,owner.type
组合必须在数据库中是唯一的。要验证新的数据类型的名称是否唯一的。在不兼容 ANSI 的数据库中,名称必须在数据库中的数据类型名称中是唯一的,要验证新的数据类型的名称是否唯一,请检查
sysxtdtypes 系统目录表,名称必须不是现有数据类型的名称。
- 如果您正在为 ROW 类型定义字段,则检查没有复制字段名称同时存在于新的和继承的字段中。
重要: 当创建子类型时,不能重新定义它为其超类型继承的字段。如果您试图重新定义这些字段,则数据库服务器返回一个错误。
不能将约束应用到已命名 ROW 数据类型,但是可以在创建或更改使用已命名 ROW 类型的表时指定约束。您也可以在某个单独的 ROW 类型的字段上指定 NOT NULL
约束。