Bonjour,
J'aurais un petit problème à vous soumettre
Dans un select imbriqué, il semble que la clause Where ne s'exécute pas
correctement.
Je m'explique:
Voici le code qui fonctionne:
Le premier SELECT remplit une table temporaire selon certaines conditions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select noemploi, cast(nas as char(9)) as nasc into #temp01 from emploi where idsynm_o = 11 and noaccreditation = 1 select * from statistiques..inform where statistiques..inform.nasc in (select nasc from #temp01) order by statistiques..inform.nasc, statistiques..inform.an
Le second SELECT extrait les informations en fonction de la clause Where (qui recherche les informations contenues dans la table temporaire).
Ce script fonctionne correctement. Cependant il survient un problème dans le contexte suivant:
1. Le script est exécuté une fois correctement.
2. Pour faire des tests, le nom de la colonne "nasc" de la table temporaire a été modifiée en "nascar", sans toutefois modifier le nom de la colonne dans le SELECT imbriqué de la clause Where.
3. La table temporaire est supprimée et le script est exécuté de nouveau.
Normalement, je pense que l'exécution de ce script modifié (et erroné) entraine un message d'erreur du type:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 drop table #temp01 select noemploi, cast(nas as char(9)) as nascar into #temp01 from emploi where idsynm_o = 11 and noaccreditation = 1 select * from statistiques..inform where statistiques..inform.nasc in (select nasc from #temp01) order by statistiques..inform.nasc, statistiques..inform.an
Pourtant, le script s'exécute. Si on ne rend pas compte de l'erreur dans le nom de la colonne, l'extraction qui en résulte est complètement erronée."Invalid Column Name".
D'ou mon interrogation ???
En vous remerciant d'avance.
P.S. Je fonctionne sous SQL Server 2000.
Partager