Bonjour,

J'essaie de mettre à jour une série d'enregistrements à partir d'un autre.
Pour ce faire, j'utilise un UPDATE SET FROM WHERE

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
update creature 
                            set creature.gender_id = c.gender_id, creature.sexe_id = c.sexe_id,
                                creature.alignment_id = c.alignment_id, creature.allegiance_id = c.allegiance_id, creature.animation_id = c.animation_id,
                                creature.general_id = c.general_id, creature.race_id = c.race_id, creature.classe_id = c.classe_id, creature.kit_id = c.kit_id,
                                creature.apr_id = c.apr_id, creature.morale = c.morale, creature.morale_break = c.morale_break, creature.movement_speed = c.movement_speed, 
                                creature.level1 = c.level1, creature.level2 = c.level2, creature.level3 = c.level3, creature.caster_level = c.caster_level,
                                creature.max_hp = c.max_hp, creature.current_hp = c.current_hp, creature.hp_bonus = c.hp_bonus, creature.armor_class = c.armor_class, 
                                creature.thaco = c.thaco, creature.experience = c.experience, creature.save_death = c.save_death, creature.save_wands = c.save_wands,
                                creature.save_poly = c.save_poly, creature.save_breath = c.save_breath, creature.save_spell = c.save_spell,
                                creature.strength = c.strength, creature.strength_bonus = c.strength_bonus, creature.strength_3rd = c.strength_3rd, creature.dexterity = c.dexterity,
                                creature.dexterity_3rd = c.dexterity_3rd, creature.constitution = c.constitution, creature.constitution_3rd = c.constitution_3rd,
                                creature.intelligence = c.intelligence, creature.wisdom = c.wisdom, creature.charisma = c.charisma, creature.class_flag = c.class_flag, 
                                creature.hide_shadow = c.hide_shadow, creature.move_silently = c.move_silently, creature.detect_illusion = c.detect_illusion,
                                creature.set_trap = c.set_trap, creature.crushing_ac = c.crushing_ac, creature.missile_ac = c.missile_ac, creature.piercing_ac = c.piercing_ac, 
                                creature.slashing_ac = c.slashing_ac, creature.resist_cold = c.resist_cold, creature.resist_magic_cold = c.resist_magic_cold, 
                                creature.resist_fire = c.resist_fire, creature.resist_magic_fire = c.resist_magic_fire, creature.resist_acid = c.resist_acid, 
                                creature.resist_electricity = c.resist_electricity, creature.resist_magic = c.resist_magic, creature.resist_crushing = c.resist_crushing, 
                                creature.resist_slashing = c.resist_slashing, creature.resist_piercing = c.resist_piercing, creature.resist_missile = c.resist_missile
                            from creature c
                            where c.id = '_KAHRK' and creature.id in (select cre.id from creature cre where cre.id in ('TEST'))
J'obtiens l'erreur:
The multi-part identifier "creature.id" could not be bound.

Si je retire le préfixe creature, l'id utilisé sera celui de mon autre table creature (alias c).
Je n'arrive pas non plus à mettre un alias sur la table mise à jour (UPDATE creature c ou UPDATE creature as c)

Bref, je me demande s'il est vraiment possible de le faire de cette manière.
Au pire, je pourrai toujours le faire avec des sous requêtes, mais vu le nombre de champs, j'aurais préféré une solution plus élégante.