The geometry type can be considered a super-type that supports eleven subtypes. However, only seven of these subtypes are instantiable; you can create and work with these subtype instances (or instantiate them) in a database. These instance types derive certain properties from their parent types that make them instantiable and distinguish them as Points, LineStrings, Polygons, or as multiple geometry instances in geometry collections.
As the figure indicates, the seven instantiable subtypes of geometry are Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, and GeometryCollection. The geometry type can recognize a specific instance type as long as it is a well-formed instance, even if the instance type is not defined explicitly. For example, if you define a Point instance explicitly using the
STPointFromText() method, geometry will recognize the instance as a Point, as long as the method input is well-formed. If you define the same geometry instance using the
STGeomFromText() method, geometry will also recognize the instance as a Point.