CREATE TABLE MPGEOM_dt(location GEOMETRY);
prepst#!#INSERT INTO MPGEOM_dt(location) values(@location) #!#GEOMETRY|-|location|-|MULTIPOINT ((1 2), (3 4)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|MULTIPOINT EMPTY:4326
prepst#!#exec#!#GEOMETRY|-|location|-|MULTIPOINT ((1 2), (3 4), (5 6)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|MULTIPOINT ((1 2 3), (4 5 6)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|MULTIPOINT ((1 2 NULL 4), (5 6 NULL 8)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|MULTIPOINT ((1 2 3 4), (5 6 7 8)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|MULTIPOINT ((1 2 3), (4 5)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|MULTIPOINT ((1 2), (4 5 6)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|MULTIPOINT ((1 2 NULL 4), (5 6 7 8)):4326
prepst#!#exec#!#GEOMETRY|-|location|-|MULTIPOINT ((-1 -2), (-3 -4)):4326

CREATE TABLE MPGEOG_dt(location GEOGRAPHY);
prepst#!#INSERT INTO MPGEOG_dt(location) values(@location) #!#GEOGRAPHY|-|location|-|MULTIPOINT ((45 90), (50 100)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|MULTIPOINT EMPTY:4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|MULTIPOINT ((0 0), (45 90), (30 60)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|MULTIPOINT ((45 90 100), (50 100 200)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|MULTIPOINT ((45 90 NULL 1), (50 100 NULL 2)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|MULTIPOINT ((45 90 100 1), (50 100 200 2)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|MULTIPOINT ((-45 -90), (-50 -100)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|MULTIPOINT ((0 0), (0 0)):4326
prepst#!#exec#!#GEOGRAPHY|-|location|-|MULTIPOINT ((90 0), (-90 0)):4326

INSERT INTO MPGEOM_dt(location) values(geometry::STGeomFromText('MULTIPOINT((1 2), (3 4))', 4326))
INSERT INTO MPGEOM_dt(location) values(geometry::STGeomFromText('MULTIPOINT((1 2 3), (4 5 6))', 4326))
INSERT INTO MPGEOM_dt(location) values(geometry::STGeomFromText('MULTIPOINT((1 2 NULL 4), (5 6 NULL 8))', 4326))
INSERT INTO MPGEOM_dt(location) values(geometry::STGeomFromText('MULTIPOINT((1 2 3 4), (5 6 7 8))', 4326))
INSERT INTO MPGEOM_dt(location) values(geometry::STGeomFromText('MULTIPOINT((1), (3 4))', 4326))
INSERT INTO MPGEOM_dt(location) values(geometry::STGeomFromText('MULTIPOINT EMPTY', 4326))

INSERT INTO MPGEOG_dt(location) values(geography::STGeomFromText('MULTIPOINT((45 90), (50 100))', 4326))
INSERT INTO MPGEOG_dt(location) values(geography::STGeomFromText('MULTIPOINT((45 90 100), (50 100 200))', 4326))
INSERT INTO MPGEOG_dt(location) values(geography::STGeomFromText('MULTIPOINT((45 90 100 1), (50 100 200 2))', 4326))
INSERT INTO MPGEOG_dt(location) values(geography::STGeomFromText('MULTIPOINT((45 90 NULL 1), (50 100 NULL 2))', 4326))
INSERT INTO MPGEOG_dt(location) values(geography::STGeomFromText('MULTIPOINT((1), (3 4))', 4326))
INSERT INTO MPGEOG_dt(location) values(geography::STGeomFromText('MULTIPOINT EMPTY', 4326))

SELECT * FROM MPGEOM_dt;
SELECT * FROM MPGEOG_dt;

CREATE TABLE MP_EMP_dt(geom GEOMETRY, geog GEOGRAPHY);
prepst#!#INSERT INTO MP_EMP_dt(geom) values(@geom) #!#GEOMETRY|-|geom|-|MULTIPOINT EMPTY:4326
prepst#!#INSERT INTO MP_EMP_dt(geog) values(@geog) #!#GEOGRAPHY|-|geog|-|MULTIPOINT EMPTY:4326
prepst#!#INSERT INTO MP_EMP_dt(geom) values(@geom) #!#GEOMETRY|-|geom|-|MULTIPOINT EMPTY:0
prepst#!#INSERT INTO MP_EMP_dt(geog) values(@geog) #!#GEOGRAPHY|-|geog|-|MULTIPOINT EMPTY:4121
SELECT geom.STAsText(), geog.STAsText() FROM MP_EMP_dt;
SELECT geom.STDimension(), geog.STDimension() FROM MP_EMP_dt;
SELECT geom.STIsClosed(), geog.STIsClosed() FROM MP_EMP_dt;
SELECT geom.STIsValid(), geog.STIsValid() FROM MP_EMP_dt;
SELECT geom.STAsBinary(), geog.STAsBinary() FROM MP_EMP_dt;
SELECT geom.STArea(), geog.STArea() FROM MP_EMP_dt;

DROP TABLE IF EXISTS MPGEOM_dt;
DROP TABLE IF EXISTS MPGEOG_dt;
DROP TABLE IF EXISTS MP_EMP_dt;
