强制转型行类型

仅当两种行类型具有相同数目的字段并且下列其中一个条件也成立时,才可以在任何两种行类型(命名行类型或未命名行类型)的值之间进行比较或替代:
  • 两种行类型的所有对应字段都具有相同的数据类型。

    当两种行类型具有相同数目的字段并且对应字段的数据类型相同时,将它们视为在结构上等价

  • 在比较两种命名行类型时,存在用于执行转换的用户定义的强制转型。
  • 存在用于对不具有相同数据类型的对应字段值执行必需转换的系统定义的强制转型或用户定义的强制转型。

    当对应的字段不具有相同的数据类型时,可使用系统定义的强制转型或用户定义的强制转型来对这些字段处理数据转换。

如果存在用于对个别字段处理数据转换的内置强制转型,则可显式地将一种行类型的值强制转型为具有其他行类型(除非行类型都是未命名行类型,在这种情况下,显式强制转型不是必需的)。

如果不存在用于处理字段转换的内置强制转型,则可创建用户定义的强制转型来处理字段转换。强制转型可以是隐式的,也可以是显式的。

通常,当将行类型强制转型为另一行类型时,可使用显式或隐式强制转型来处理个别字段转换。 因为数据库服务器不对已进行显式强制转型的值应用任何附加的隐式强制转型, 所以当对应字段之间的转换要求进行显式强制转型时,进行强制转型的字段的值必须与对应字段的值完全匹配。