SQL pour la mise à jour des données

InfoWorks WS Pro comprend les mots-clés SQL SET et UPDATE qui permettent de modifier les données réseau à l’aide d’une expression SQL.

Pour en savoir plus sur les mots-clés, voir la rubrique Syntaxe SQL.

Voir les rubriques Exemples SQL pour obtenir des exemples supplémentaires sur l’utilisation de SQL dans InfoWorks WS Pro.

Mise à jour du type d’objet actuel

Le mot-clé SET peut être utilisé seul ou conjointement avec une sous-clause WHERE pour mettre à jour le type d’objet choisi dans le champ Type d’objet de la boîte de dialogue SQL.

La syntaxe est la suivante :

Utilisation du mot-clé SET

SET <affectation>

Par exemple,

SET user_text_1 = "texte"

définit le champ user_text_1 sur du texte pour tous les objets du type d’objet choisi (sélectionné dans le champ Type d’objet de la boîte de dialogue SQL).

SET user_text_1 = "texte", user_number_1 = x

définit le champ user_text_1 sur du texte et le champ user_number_1 sur la valeur du champ x pour tous les objets du type d’objet choisi.

Utilisation de SET et WHERE

SET <affectation> WHERE <expression conditionnelle>

Par exemple,

SET user_number_1 = 1 WHERE x > 100000

définit le champ user_number_1 sur 1 pour tous les objets du type choisi avec une coordonnée x supérieure à 100 000.

SET user_number_1 = 1, user_number_2 = 2 WHERE x > 100000

SET user_number_1 = 1, user_number_2 = 2 WHERE x > 100000; SET user_number_3 = 3;

définit user_number_1 sur 1 et user_number_2 sur 2 pour tous les objets du type d’objet choisi avec une coordonnée x supérieure à 100 000 et définit user_number 3 sur 3 pour tous les objets du type d’objet choisi.

Mise à jour des valeurs d’un tableau

Pour mettre à jour les valeurs d’un tableau dans un objet :

SET <array name.array fieldname> = <expression>

(Pour en savoir plus sur l’utilisation des requêtes SQL avec les tableaux, voir la rubrique SQL et données de tableau.)

Exemples

D’autres exemples sont présentés ci-dessous.

Exemple 1

SET diameter = 300 WHERE diameter_flag = 'CH' ; SET length = 10 WHERE length < 10

La première partie définit un diamètre de 300 pour toutes les canalisations pour lesquelles l’indicateur de données sur le diamètre de la canalisation est défini sur « CH ». La deuxième partie fixe une longueur minimale de 10 m pour toutes les canalisations de moins de 10 m de long.

Exemple 2

Cette opération définit le champ Texte utilisateur 5 de tous les nœuds à l’intérieur d’un polygone SIG de la couche SIG « Région » sur la valeur du champ « Catégorie » du polygone SIG.

Pour en savoir plus sur l’ajout de couches SIG aux requêtes SQL, voir la rubrique Ajout de données SIG aux requêtes SQL.

Mise à jour d’un autre type d’objet

Le mot-clé UPDATE est utilisé conjointement avec les mots-clés SET et WHERE pour mettre à jour les objets d’un ou de plusieurs types. Il ne s’agit pas nécessairement du type sélectionné dans la liste Type d’objet de la boîte de dialogue SQL.

Séparez les affectations multiples d’une même instruction par des virgules et les instructions multiples par des points-virgules, comme décrit dans la section Mise à jour du type d’objet actuel ci-dessus.

Exemple 1

UPDATE <type d’objet> SET <affectation>

Par exemple,

UPDATE [Tous les liens] SET user_text_1 = "texte"

définit le champ user_text_1 sur du texte pour tous les objets liens.

Exemple 2

UPDATE <type d’objet> SET <affectation> WHERE <expression conditionnelle>

Par exemple,

UPDATE node SET user_number_1 = 1 WHERE x > 100000

définit le champ user_number_1 sur 1 pour les objets nœuds avec une coordonnée x supérieure à 100 000.