Dies funktioniert für mich auf SQL Server 2008. Nachdem Sie die Form als Geometrie geladen haben, verwenden Sie MakeValid()
um es zu korrigieren, dann laden Sie es in eine Geografie neu.
declare @gt nvarchar(max)
declare @gm geometry
declare @gmvalid geometry
set @gmvalid = @gm.MakeValid()
set @gt = @gmvalid.STAsText()
--select @gt
if LEFT(@gt,7 ) = 'POLYGON'
begin
set @gg = geography::STPolyFromText(@gt, 4326)
end
else
begin
set @gg = geography::STMPolyFromText(@gt, 4326)
end