|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
Bonjour,
J'ai une requête d'insertion de données depuis un serveur lié et j'obtiens un message d'erreur : Code :
En regardant sur le net il semblerait que cela provienne d'un bug de serveur lié ? |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Postez la requête.
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
Code :
|
||
|
|
00
|
|
|
#4 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
Ma requête s’exécute bien jusqu'à ma condition Where :
Code :
Mais dés que je fais le test d'existence (ajout de la condition Where)! ça plante ! Code :
|
||||
|
|
00
|
|
|
#5 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Cela ne correspond pas à l'erreur mentionné !
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#6 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
comment ça, ça ne correspond pas ?
Quand j’exécute la requête sans l'insertion (Sans INSERT INTO) mais avec la condition WHERE, j'ai bien l'erreur suivant : Code :
Mais lorsque j'enlève ma condition WHERE, j'obtiens bien des résultats ! D'où mon incompréhension du problème ... |
||
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 959 ![]() |
Le message d'erreur mentionne "Tbl1003.IDFiche" alors que cette chose ne figure pas dans votre requête !
Auriez vous un trigger ? Serait-ce une vue ?? A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
Je sais bien ... le seul endroit ou j'utilise IdFiche et donc la table fiche c'est dans la jointure !
Je n'utilise aucun trigger ni vue ... je ne comprends pas d'ou vient l'erreur ! Je requête sur un serveur lié ... |
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
J'ai une solution :
Au lieu de faire une jointure sur la table Fiche de la BDD Test fraichement peuplée, je fais une jointure sur la sous-requête qui m'a permis de peupler la table Fiche ! Et là ! Ho! miracle ! ça marche ! ![]() Je comprends toujours pas l'erreur ! |
|
|
00
|
|
|
#10 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
Autre solution :
Au lieu de faire ma condition WHERE sur l'ensemble, ma requête fonctionne si je l'a fait dans la sous requête ! Code :
Code :
|
||||
|
|
00
|
|
|
#11 | ||
|
Membre émérite
![]() Serge RUQUETConsultant informatique Inscription : août 2006 Messages : 669 ![]() |
essaies cela
Code :
__________________
Errare humanum est, perseverare diabolicum (Sénèque) |
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() |
Plutôt que de faire des INNER JOIN puis un distinct, préférez des sous requêtes EXISTS dans le WHERE...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#13 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
serge0934 => Cette requête fonctionne ! elle me retourne les bon résultats !
Peux tu me donner ta réflexion sur ta requête ? J’obtiens les mêmes résultats en passant par la sous requête qui me construisait mes fiches ... mais du coup ça l'alourdi ! Une question me tracasse : LEFT OUTER JOIN et LEFT JOIN c'est bien la même chose !? C'est juste une question de syntaxe, ou la norme SQL préconise d'utiliser LEFT OUTER JOIN mais LEFT JOIN marche quand même, donc est un abus ? |
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() Serge LESPAGNARDConsultant informatique Inscription : janvier 2004 Messages : 588 ![]() |
|
|
|
00
|
|
|
#15 |
|
Membre émérite
![]() Serge RUQUETConsultant informatique Inscription : août 2006 Messages : 669 ![]() |
OK weebo,
1- en fait, dans ton cas, tu veux trouver un ensemble IDmodele (plus d'autres infos) qui sont contenu dans un ensemble mais dont l'IDmodele n'appartient pas a un autre ensemble => c'est exactement la définition du LEFT OUTER JOIN select a.toto,a.tata from A LEFT OUTER JOIN B ON A.key=B.Key where b.toto is null tous les toto qui sont dans l'ensemble A et pas dans l'ensemble B 2- je ne m'avancerai pas trop, mais je crois que par défault la clause LEFT JOIN est un LEFT OUTER JOIN. ceci dit, je me rend compte en l'écrivant que cela ne peut pas être un LEFT INNER JOIN car cela ne voudrait rien dire => tout ce qui est dans l'ensemble de gauche et dans l'ensemble de droite et surtout dans celui de gauche ![]() Si SQLPro passe par ce post, il te donnera la réponse
__________________
Errare humanum est, perseverare diabolicum (Sénèque) |
|
|
00
|
|
|
#16 | |
|
Membre Expert
![]() |
Citation:
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#17 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2011 Messages : 70 ![]() |
Ok merci pour ces réponses !
Je n'aurais pas non plus fait l'erreur de mettre un LEFT INNER JOIN ![]() Je pense aussi qu'un LEFT JOIN équivaut à un LEFT OUTER JOIN sinon je ne vois pas la différence ! Ça doit juste être un soucis de norme syntaxique à mon avis ! A moins que je me trompe ! Félicitations ce billet passe à résolu, et merci à tout le monde ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com