空間タイプを使用してテーブルを更新していますが、ジオメトリ タイプが地理タイプに正常に読み込まれるようにするために、3 つ以上の更新を実行する必要がある場合があります。私がやりたいことは、最初の更新でできるだけ多くの行をコミットし、最初の更新が失敗した場所で 2 番目の更新を使用し、最後に 2 番目の更新が失敗した場所で 3 番目の更新を使用することです。
これを手動で行うことに成功し、ジオメトリ タイプを使用してすべての地理タイプを更新しました。これらは私が使用しているステートメントです:
ステートメント #1 を更新します。
Update Postcode set geog = geography::STGeomFromWKB(geom.STAsBinary(), 4326)
FROM Postcode
WHERE geog is null
ステートメント #2 を更新します。
Update Postcode set geog = geography::STGeomFromWKB(geom.STUnion(geom.STStartPoint()).STAsBinary(), 4326)
FROM Postcode
WHERE geog is null
更新ステートメント #3:
Update Postcode set geog = geography::STGeomFromWKB(geom.STBuffer(0.00001).STBuffer(-0.00001).STAsBinary(), 4326)
FROM Postcode
WHERE geog is null
これを記述して、エラーが発生していない場所で行を更新し、エラーが発生した場合に次の更新ステートメントに進むことができるようにする方法はありますか?
それが理にかなっており、どんな助けも大歓迎です。