结构化类型的 null 实例是不存在的实例。这不同于其中所有属性都具有 null 值的现有实例。
本主题介绍可以为 Null 的结构化类型,包括哪些类型可以为 null 以及哪些代码模式会产生可以为 Null 的结构化类型的 null 实例。
可以为 Null 的结构化类型的种类
有三种可以为 Null 的结构化类型:
- 行类型。 
- 复杂类型。 
- 实体类型。 
能够产生结构化类型的 null 实例的代码模式
以下方案会产生 null 实例:
- 将 null 说明为结构化类型: - TREAT (NULL AS StructuredType)
- 将基类型向上转换为派生类型: - TREAT (BaseType AS DerivedType)
- 对 false 条件进行外部联接: - Collection1 LEFT OUTER JOIN Collection2 ON FalseCondition- --或 - Collection1 RIGHT OUTER JOIN Collection2 ON FalseCondition- --或 - Collection1 FULL OUTER JOIN Collection2 ON FalseCondition
- 取消 null 引用的引用: - DEREF(NullRef)
- 从空集合获取 ANYELEMENT: - ANYELEMENT(EmptyCollection)
- 检查结构化类型实例是否为 null: - ... for (int i = 0; i < reader.FieldCount; i++) { if (reader.IsDBNull(i)) { Console.WriteLine(“[NULL]”); } else { Console.WriteLine(reader.GetValue(i).ToString()); } }