• Here is the code 😎

    DECLARE @POLIGON GEOMETRY;

    /* ms sample from BOL */

    SET @POLIGON = geometry::STPolyFromText('POLYGON ((5 5, 10 5, 10 10, 5 5))', 0);

    ;WITH NN1(N) AS (SELECT NM.N FROM (VALUES (1),(1),(1),(1),(1),(1),(1),(1),(1),(1)) AS NM(N))

    ,NUMBERS(N) AS (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) FROM NN1 N1,NN1 N2, NN1 N3

    ORDER BY 1 OFFSET 0 ROWS FETCH FIRST (@POLIGON.STNumPoints()) ROWS ONLY)

    SELECT

    NM.N

    ,@POLIGON.STPointN(NM.N) AS PPoint

    FROM NUMBERS NM