• i have give three different type of approach tak which one you want

    DECLARE @GEOLINE TABLE

    (

    GEOLINE_ID INT IDENTITY(1,1) NOT NULL

    ,GEOLINE_LINE GEOMETRY NOT NULL

    );

    INSERT INTO @GEOLINE (GEOLINE_LINE)

    VALUES

    (geometry::STGeomFromText('LINESTRING(0 1, 6 0)', 0))

    ,(geometry::STGeomFromText('LINESTRING(0 2, 5 0)', 0))

    ,(geometry::STGeomFromText('LINESTRING(0 3, 4 0)', 0))

    ,(geometry::STGeomFromText('LINESTRING(0 4, 3 0)', 0))

    ,(geometry::STGeomFromText('LINESTRING(0 5, 2 0)', 0))

    ,(geometry::STGeomFromText('LINESTRING(0 6, 1 0)', 0))

    ,(geometry::STGeomFromText('LINESTRING(4 4, 3 6)', 0));

    /*******************************************

    * for just select the interSEcted lines

    *******************************************/

    SELECT g.GEOLINE_LINE FROM @GEOLINE g

    WHERE EXISTS

    (SELECT 1 FROM @GEOLINE g1 WHERE g.GEOLINE_LINE.STIntersects(g1.GEOLINE_LINE)=1)

    /*******************************************

    * for just select the aLL lines

    *******************************************/

    SELECT g.GEOLINE_LINE ,g.GEOLINE_LINE.STIntersection(g1.GEOLINE_LINE).STBuffer(0.05) AS Intersctions FROM @GEOLINE g

    INNER JOIN @GEOLINE g1 ON g.GEOLINE_LINE.STIntersects(g1.GEOLINE_LINE)=1 AND g.GEOLINE_LINE.ToString()<>g1.GEOLINE_LINE.ToString()

    /*******************************************

    * Overlayer

    *******************************************/

    SELECT x.allgeo FROM @GEOLINE g

    LEFT JOIN @GEOLINE g1 ON g.GEOLINE_LINE.STIntersects(g1.GEOLINE_LINE)=1 AND g.GEOLINE_LINE.ToString()<>g1.GEOLINE_LINE.ToString()

    CROSS APPLY

    (

    VALUES

    (g.GEOLINE_LINE) ,(g.GEOLINE_LINE.STIntersection(g1.GEOLINE_LINE).STBuffer(0.2))

    )AS x (AllGeo)

    Every rule in a world of bits and bytes, can be bend or eventually be broken
    MyBlog About Common dialog control
    A Visualizer for viewing SqlCommand object script [/url]