Я обновляю таблицу с пространственными типами, и есть три или более обновлений, которые, возможно, придется выполнить, чтобы убедиться, что тип геометрии успешно загружен в тип географии. Я хочу сделать первое обновление и зафиксировать как можно больше строк, а затем использовать второе обновление, в котором первый из них был неудачным, и, наконец, использовать третье обновление, в котором вторая ошибка.Обновление строк и фиксация с помощью нескольких операторов обновления
Мне удалось это сделать вручную и обновить все типы географии, используя типы геометрии. Эти заявления, которые я использую:
Обновление заявление # 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
Update Заявление # 3:
Update Postcode set geog = geography::STGeomFromWKB(geom.STBuffer(0.00001).STBuffer(-0.00001).STAsBinary(), 4326)
FROM Postcode
WHERE geog is null
ли есть способ написать это, чтобы он позволял мне обновлять строки везде, где ошибка не встречается, а затем перейти к следующему обновлению заявление в случае ошибки?
Надеюсь, что это имеет смысл, и любая помощь будет принята с благодарностью.
** SQL ** не является базой данных - это язык запросов. Поэтому я предполагаю, что вы говорите * SQL * (langauge), и вы действительно имеете в виду ** SQL Server ** - продукт реляционной базы данных Microsoft - правильно? Поэтому для большей ясности используйте «sql-server» (или теги, специфичные для версии), а не только общий тег 'sql'. –