Mise à jour de données non versionnées de géodatabase dans SQL Server avec SQL

Vous pouvez utiliser SQL pour mettre à jour, insérer des données et supprimer des données de tables non versionnées dans la géodatabase si elles ne participent pas au comportement de la géodatabase. Consultez la rubrique Type de données pouvant être modifié avec SQL pour plus d'informations sur les types de données et comportements de géodatabase que vous ne pouvez pas modifier avec SQL.

RemarqueRemarque :

Si la table non versionnée que vous souhaitez mettre à jour avec SQL est activée pour l'archivage, vous devez mettre à jour la vue d'archive de la table plutôt que la table elle-même. La vue mettra automatiquement à jour certains champs gérés par ArcGIS. Pour plus d'informations, reportez-vous à la rubrique Présentation d'une vue d'archive et aux rubriques associées.

Toutes les données enregistrées avec la géodatabase possèdent un champ ObjectID (ID de ligne) géré par le système, unique et non nul. Lorsque vous utilisez SQL pour insérer des enregistrements dans des tables non versionnées de la géodatabase, vous devez fournir une valeur unique pour l'identifiant ObjectID. Exécutez la procédure Next_RowID pour obtenir la valeur du prochain identifiant ObjectID disponible. Utilisez ensuite cette valeur dans votre instruction INSERT pour renseigner le champ ObjectID de l'enregistrement.

RemarqueRemarque :

L'identifiant ObjectID disponible suivant n'est pas nécessairement le prochain nombre séquentiel qui suit le dernier identifiant ObjectID inséré. Pour certaines applications clientes, les identifiants ObjectID sont attribués par lots. Ainsi, l'identifiant ObjectID disponible suivant peut correspondre à des nombres beaucoup plus élevés que le dernier que vous avez utilisé. De plus, les identifiants ObjectID du lot sont renvoyés dans le groupe des valeurs disponibles. Par conséquent, la valeur du prochain identifiant ObjectID disponible peut en réalité être un nom inférieur à celui que vous avez inséré en dernier.

Ces instructions expliquent la procédure de mise à jour, ligne par ligne, dans une table non versionnée, ainsi que la procédure d'insertion d'un ObjectID. Vous écrirez probablement une routine ou un programme client pour récupérer des identifiants ObjectID et mettre à jour vos données.

Etapes :
  1. Connectez-vous à un éditeur SQL, tel que celui de Microsoft SQL Server Management Studio.

    Connectez-vous à la base de données avec un nom d'utilisateur autorisé à modifier les données.

  2. Exécutez la procédure stockée Next_RowID afin d'obtenir une valeur pour le champ ObjectID.

    Dans cet exemple, gisdata4 est la structure dans laquelle est stockée la table farmland.

    DECLARE @id as integer
    EXEC dbo.next_rowid 'gisdata4', 'farmland', @id OUTPUT;
    SELECT @id "Next ObjectID";
    
    Next ObjectID
    423
    
  3. Utilisez la valeur renvoyée par l'instruction précédente pour renseigner le champ ObjectID de l'enregistrement que vous insérez.
    INSERT INTO gisdata4.farmland (objectid,crop,shape)
     VALUES (
      423,
      'oats',
      geography::STGeomFromText('POLYGON((-111.85897004 33.25178949,
    -111.86899617 33.25065270, -111.86887014 33.25062350,
    -111.85884555 33.25176951, -111.85897004 33.25178949))', 4267)
     );
    
  4. Vous pouvez continuer la mise à jour ou, si vous avez terminé, valider vos modifications dans la base de données.

Si la table contient également un champ GUID ou ID global, vous devez fournir une valeur unique pour ce champ. Pour plus d'informations, reportez-vous à la rubrique Insertion d'une valeur dans une colonne d'identifiant global dans SQL Server à l'aide de SQL.

Thèmes connexes

5/10/2014