Об обновлении данных с помощью SQL
После загрузки больших объемов данных в вашу базу геоданных, вы можете захотеть обновить сразу несколько значений атрибутов одновременно. В случае с базами геоданных ArcSDE, вы можете выполнить это с помощью работы с версиями данных, когда выполняете редактирование в ArcMap, чтобы произвести обновление. При таком подходе есть сложность, что все обновлённые пространственные объекты хранятся в дельта-таблицах; вам надо сжать вашу базу геоданных, чтобы переместить обновлённые пространственные объекты в основные таблицы.
Другим методом является выполнение массовых правок в атрибутах, которые могут быть выполнены с помощью SQL перед тем как данные будут зарегистрированы как версионные. Использование этого метода подразумевает, что эти массовые правки в атрибутах будут сделаны до активации механизма версий и, что все объекты останутся в базовых таблицах.
Ниже приведены несколько правил, которые используются при выполнении обновлений с помощью SQL. Является важным понимание ваших моделей данных, чтобы атрибуты, которые вы обновите, не повлияли на другие объекты в базе данных через отношения или с помощью другого поведения. Использование SQL для этой операции без глубокого понимания модели данных может привести к порче данных. Например, если вы используете SQL для изменения атрибутов пространственного объекта, текст которых используется объектно-связанными аннотациями, пространственные объекты-аннотации не обновятся принудительно, и в результате случится несовпадение пространственных объектов и соответствующих аннотаций. А если эти атрибуты обновлять в ArcGIS, все необходимые действия выполняются.
Вот список правил, которые надо принимать во внимание при выполнении обновлений средствами SQL вне ArcGIS:
- Никогда не обновляйте с помощью SQL записи в таблицах после того, как данные были зарегистрированы как версионные.
- При обновлении данных с помощью SQL не изменяйте атрибуты, которые определяют поведение базы геоданных и влияют на другие объекты в базе данных.
- Никогда не обновляйте поле ObjectID с помощью SQL.
- Никогда не обновляйте поля Enabled или AncillaryRole или поле веса для класса пространственных объектов геометрической сети с помощью SQL. Когда эти поля обновляются в ArcGIS, производятся изменения в таблицах сетевой топологии, которые недоступны для SQL.
- Никогда не обновляйте поля Element, SymbolID, TextString, FontName, FontSize, Bold, Italic, Underline, VerticalAlignment, HorizontalAlignment, XOffset, YOffset, Angle, FontLeading, WordSpacing, CharacterWidth, CharacterSpacing, FlipAngle и Override в классах пространственных объектов-аннотаций. Обновление этих полей в ArcGIS приводит к изменениям элемента BLOB пространственного объекта, которые SQL не может инициировать. Когда вы обновите эти поля с помощью SQL за пределами ArcGIS, символы текста ассоциированные с каждым объектом аннотаций для всех обновленных строк не будут обновлены.