sql server中sys.types视图中user_type_id和system_type_id有什么区别?
我想用sys.types来内部连接sys.columns来获取用户表中的列的数据类型,但是这两个视图都有两个字段user_type_id和system_type_id,应该使用哪一个?
解决方法
你几乎不想加入sys.columns.system_type_id = sys.types.system_type_id.在用户定义类型的情况下,这将导致
duplicate records.
有两个有意义的JOIN.它们都是内置类型的工作.
> sys.columns.user_type_id = sys.types.user_type_id
对于内置类型,它返回内置类型.
对于用户定义的类型,它返回用户定义的类型.
> sys.columns.system_type_id = sys.types.user_type_id
对于内置类型,它返回内置的基本类型.这可能是有意义的,例如,如果要获取所有varchar列,包括基于varchar的所有用户定义的列.