Vous pouvez utiliser le SQL natif de votre système de gestion de base de données pour lire les données depuis les tables et les classes d’entités (collectivement désignées jeux de données) dans une géodatabase d’entreprise. Vous pouvez également utiliser SQL pour insérer et mettre à jour des valeurs dans des jeux de données simples stockés dans votre géodatabase d'entreprise, ou encore pour les supprimer.
Lorsque vous exécutez SQL par rapport à un jeu de données de géodatabase, vous demandez les données dans la table de base (ou de l’entreprise). Si le jeu de données que vous interrogez répond aux critères suivants, il suffit d'interroger la table de base pour voir et mettre à jour les données. Vous pouvez y insérer des enregistrements ou en supprimer à l'aide de SQL :
- Le jeu de données ne fait pas partie des fonctionnalités de géodatabase, telles que l'annotation, la réplication, les réseaux, les ateliers parcellaires, les classes de relations, les jeux de données schématiques, les sous-types, les domaines, les MNT ou la topologie.
- Le jeu de données n'est pas inscrit comme versionné.
- Le jeu de données n’est pas activé pour l'archivage.
- Le jeu de données ne contient aucun type de données de géométrie binaire ni aucune colonne de type de données XML ArcSDE.
Les sections suivantes décrivent ce que vous devriez faire si votre jeu de données ne satisfait pas ces critères.
Si le jeu de données fait partie des fonctionnalités de géodatabase
Si les données auxquelles vous souhaitez accéder font partie des fonctionnalités de géodatabase, vous devez construire votre requête de manière à inclure les tables associées requises et joindre celles-ci à l'aide des colonnes appropriées pour voir les informations dans les tables associées.
Vous pouvez utiliser la fonction Is_Simple pour déterminer si votre jeu de données participe à la fonctionnalité d’une géodatabase donnée. Si Is_Simple renvoie la valeur False, vous pouvez exécuter les instructions SQL SELECT par rapport au jeu de données, mais vous ne pouvez pas modifier le jeu de données à l’aide de SQL.
Si le jeu de données est inscrit comme versionné
Si votre jeu de données est inscrit pour une utilisation avec un versionnement traditionnel, vous pouvez utiliser une vue versionnée pour l’interroger et voir les données dans la base ainsi que dans les tables des ajouts et des suppressions, sans avoir à écrire des instructions de jointure complexes. Une vue versionnée est créée lorsque vous inscrivez le jeu de données comme versionné.
Pour mettre à jour le jeu de données versionné traditionnel à l’aide de SQL, vous devez le mettre à jour via une vue versionnée. Cela permet d'écrire les mises à jour dans les tables des ajouts et des suppressions et de renseigner le champ ObjectID lorsque les enregistrements sont insérés.
Vous pouvez utiliser la fonction Is_Versioned afin de déterminer si votre jeu de données est inscrit pour être utilisé dans le versionnement traditionnel. Si c’est le cas, utilisez la fonction Version_View_Name pour déterminer le nom de la vue versionnée.
Si vos données sont inscrites pour utiliser le versionnement de branche, ne les mettez pas à jour avec SQL.
Si le jeu de données n'est pas inscrit comme versionné mais s'il est activé pour l'archivage
Si votre jeu de données n'est pas inscrit pour être utilisé dans le versionnement traditionnel mais qu'il est activé pour l'archivage, une vue d'archive est créée lorsque l'archivage est activé.
Si vous souhaitez utiliser SQL pour mettre à jour un jeu de données non versionné qui est activé pour archivage, vous devez le mettre à jour via une vue d’archivage. Dans ce cas, le champ Object ID et les champs qui consignent la date de mise à jour d'une entité ou d'un enregistrement sont mis à jour.
Si la fonction Is_Versioned renvoie la valeur Faux et que vous savez avec certitude que le jeu de données n’est pas inscrit pour être utilisé dans un versionnement de branche, utilisez la fonction Is_Archive_Enabled pour déterminer si votre jeu de données est activé pour l’archivage. S’il est activé pour archivage, utilisez la fonction Archive_View_Name pour déterminer le nom de la vue d’archivage, que vous pouvez utiliser pour mettre à jour le jeu de données à l’aide de SQL.
Si le jeu de données contient une géométrie binaire ou une colonne ArcSDE XML
Si les données auxquelles vous souhaitez accéder utilisent le stockage de géométrie binaire ou XML ArcSDE, vous devez construire votre requête de manière à inclure les tables associées requises et joindre celles-ci à l'aide des colonnes appropriées pour effectuer une requête d’informations dans les tables associées.
N'utilisez pas SQL pour mettre à jour les jeux de données qui contiennent un stockage de géométrie binaire ou des colonnes de type de données XML ArcSDE.