A propos de la mise à jour des données à l'aide de SQL
Après avoir chargé une grande quantité de données dans votre géodatabase, vous pouvez mettre à jour simultanément de nombreuses valeurs d'attributs. Dans le cas d'une géodatabase ArcSDE, vous pouvez procéder en versionnant les données, puis en effectuant une mise à jour dans ArcMap. Le problème de cette méthode est que toutes les entités mises à jour se trouvent dans des tables delta ; vous devez compresser votre base de données pour déplacer les entités mises à jour dans les tables de base.
Une autre méthode consiste à mettre à jour massivement les attributs, ce que vous pouvez faire à l'aide de SQL avant de versionner les données. Cela signifie que ces mises à jour se font avant le versionnement de la base de données et que, par conséquence, toutes les entités restent dans les tables de base.
Certaines règles doivent être appliquées aux mises à jour à l'aide de SQL. Il est important de comprendre les modèles de données pour que les attributs que vous mettez à jour n'affectent pas les autres objets figurant dans la base de données par les relations ou autres comportements. L'utilisation de SQL pour cette opération sans véritablement comprendre le modèle de données peut entraîner une corruption des données. Si vous utilisez SQL pour modifier par exemple les attributs d'une entité de laquelle le texte d'une annotation liée à une entité est dérivé, les annotations ne recevront pas de message leur indiquant de se mettre à jour, en conséquence de quoi l'annotation et l'entité ne seront pas synchrones. Lorsque ces attributs sont mis à jour dans ArcGIS, le comportement nécessaire s'exécute.
Voici une liste de recommandations importantes à prendre en considération lorsque vous réalisez des mises à jour à l'aide de SQL en dehors du cadre d'ArcGIS :
- Ne mettez jamais à jour des enregistrements dans SQL une fois que les données sont versionnées.
- Lors de la mise à jour de données à l'aide de SQL, ne modifiez pas les attributs affectant d'autres objets de la base de données par le comportement de la géodatabase.
- Ne mettez jamais à jour le champ ObjectID avec SQL.
- Ne mettez jamais à jour les champs Enabled ou AncillaryRole ou un champ de pondération d'une classe d'entités de réseau géométrique avec SQL. Lorsque ces champs sont mis à jour par le biais d'ArcGIS, des modifications sont apportées aux tables de topologie du réseau géométrique que SQL ne déclenche pas.
- Ne procédez jamais à la mise à jour de Element, SymbolID, TextString, FontName, FontSize, Bold, Italic, Underline, VerticalAlignment, HorizontalAlignment, XOffset, YOffset, Angle, FontLeading, WordSpacing, CharacterWidth, CharacterSpacing, FlipAngle, et ne remplacez jamais les champs d'une classe d'entités annotations. Lorsque ces champs sont mis à jour par le biais d'ArcGIS, des modifications sont apportées à l'élément BLOB de l'entité que SQL ne déclenche pas. Lorsque vous mettez à jour ces champs à l'aide de SQL, à l'extérieur d'ArcGIS, les champs de symbole textuel associés à chaque annotation pour tous les enregistrements mis à jour, ne sont pas mis à jour.