Après avoir chargé un grand volume de données dans votre géodatabase, vous pouvez être amené à mettre à jour de nombreuses valeurs attributaires simultanément. Dans le cas d'une géodatabase d'entreprise, vous pouvez versionner les données, puis les modifier dans ArcMap avant de procéder à la mise à jour. Le problème de cette méthode est que toutes les entités mises à jour seront placées dans les tables de deltas et que vous devez compresser votre base de données pour transférer les entités mises à jour dans les tables de base.
L'autre méthode consiste à effectuer des mises à jour par lots d'attributs, ce qui peut s'effectuer avec SQL avant le versionnement des données. Lorsque vous recourez à cette méthode, les mises à jour par lots s'effectuent avant le versionnement de la base de données et toutes les entités demeurent dans les tables de base.
Certaines règles doivent être appliquées avant d'effectuer des mises à jour avec SQL. Il est important de comprendre vos modèles de données afin que les attributs que vous modifiez n'affectent pas d'autres objets de la base de données via des relations ou un autre comportement. L'utilisation de SQL pour cette opération sans comprendre véritablement votre modèle de données risque d'endommager les données. Par exemple, si vous utilisez SQL pour modifier les attributs d'une entité dont découle le texte d'une annotation liée aux entités, les entités annotations ne seront pas invitées à se mettre à jour elles-mêmes, de sorte que l'annotation et l'entité ne seront pas synchronisées. Lorsque ces attributs sont mis à jour dans ArcGIS, le comportement nécessaire est exécuté dans son intégralité.
Voici une liste d'instructions importantes à suivre lors des mises à jour avec SQL en dehors du contexte d'ArcGIS :
- Ne mettez jamais à jour d'enregistrements dans SQL après le versionnement de vos données.
- Lorsque vous mettez à jour des données avec SQL, ne modifiez pas les attributs qui, via le comportement de géodatabase, affectent d'autres objets de la base de données.
- Ne mettez jamais à jour le champ IdObjet avec SQL.
- Ne mettez jamais à jour le champ Activé ou AncillaryRole, ou un champ de pondération pour une classe d'entités de réseau géométrique avec SQL. Lorsque ces champs sont mis à jour via ArcGIS, SQL ne déclenche pas les modifications apportées aux tables de topologie de réseau géométrique.
- Ne mettez jamais à jour les champs Element, SymbolID, TextString, FontName, FontSize, Bold, Italic, Underline, VerticalAlignment, HorizontalAlignment, XOffset, YOffset, Angle, FontLeading, WordSpacing, CharacterWidth, CharacterSpacing, FlipAngle ou Override d'une classe d'entités annotations. Lorsque ces champs sont mis à jour via ArcGIS, SQL ne déclenche pas les modifications apportées à l'élément BLOB. Lorsque vous mettez à jour ces champs avec SQL en dehors d'ArcGIS, les champs de symbole textuel associés à chaque entité annotation pour toutes les lignes mises à jour ne s'actualisent pas.