J'essaie de tracer un certain SQL dans Microsoft Server. Je suis tombé sur une jointure qui utilise une convention qui ne m'est pas familière. Que signifie " =*
" signifie ?
WHERE table1.yr =* table2.yr -1
J'essaie de tracer un certain SQL dans Microsoft Server. Je suis tombé sur une jointure qui utilise une convention qui ne m'est pas familière. Que signifie " =*
" signifie ?
WHERE table1.yr =* table2.yr -1
Ceci :
WHERE t.column =* s.column
...est une ancienne syntaxe de jointure externe TSQL (avant SQL Server 2005), et n'est pas une JOIN ANSI.
Référence : Jonction externe de SQL Server 2005 - Gotcha
Cela signifie que le code doit être remplacé immédiatement ! Ce style de jointure est censé être une jointure droite. Malheureusement, elle sera parfois interprétée comme une jointure croisée, de sorte que les résultats de l'utilisation de cette jointure peuvent ne pas être corrects. De plus, cette syntaxe est dépréciée et ne pourra pas être utilisée dans la prochaine version du serveur SQl.
Il s'agit de la syntaxe ANSI SQL 1989 pour le RIGHT OUTER JOIN, où *= serait le LEFT OUTER JOIN.
Vous devez également noter que l'utilisation de la syntaxe de jointure dans la clause WHERE est dépréciée en SQL 2008. http://scarydba.wordpress.com/2009/09/15/no-join-predicate/ <== Un article opportun sur ce sujet.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.