Isso está funcionando para mim no SQL Server 2008. Depois de carregar a forma como uma geometria, use
MakeValid()
para corrigi-lo e, em seguida, recarregue em uma geografia. 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