No creo que pueda hacer esto en una vista, pero puede crear una función definida por el usuario con valores de tabla (una función que devuelve una tabla) para obtener lo que desea.
Este ejemplo usa una tabla definida como
CREATE TABLE GeoTable (GeomKey int, vector GEOMETRY)
que almacena diferentes tipos de geometría (en el ejemplo que vinculé a continuación usé PUNTO, MULTIPUNTO, LINESTRING y POLYGON).
CREATE FUNCTION dbo.GetVertices()
RETURNS @ret TABLE (GeomKey INT, X INT, Y INT, PointNo INT)
AS
BEGIN
DECLARE @max INT
SET @max = (SELECT MAX(vector.STNumPoints()) FROM GeoTable)
;WITH Sequence(Number) AS
(
SELECT 1 AS Number
UNION ALL
SELECT Number + 1
FROM Sequence
WHERE Number < @max
)
INSERT INTO @ret
SELECT
gt.GeomKey
,gt.vector.STPointN(nums.number).STX AS X
,gt.vector.STPointN(nums.number).STY AS Y
,nums.number AS PointNo
FROM GeoTable gt, Sequence nums
WHERE nums.number <= gt.vector.STNumPoints()
RETURN
END;
Vea este muestra de SQL Fiddle para un ejemplo de trabajo completo.