8 Stimmen

=* Operator in SQL

Ich habe getippt und aus Versehen etwas mit einem fetten Finger gemacht und als ich

=*

im SQL-Fenster (2008 SSMS, das mit einem 2005er Server verbunden ist) eingegeben habe, wurde es blau als Schlüsselwort markiert.

Ich kann nicht herausfinden, was dies macht. Ich kenne *= aber nicht =*

Was macht dieser Operator?

1 Stimmen

Auf welcher Tastatur hast du "=" und "*" fettgedrückt?

0 Stimmen

Sollte sein =( wie beim Starten einer Unterabfrage in einer Set-Anweisung =(Select

0 Stimmen

Mögliche Duplikate von SQL Server *= Operator?

21voto

Andomar Punkte 224164

=* ist eine alte Methode, um Right Outer Joins zu schreiben. Zum Beispiel:

select  *
from    A
right outer join
        B
on      A.bid = B.id

Wird im alten Stil geschrieben wie:

select  *
from    A
,       B
where   A.bid =* B.id

0 Stimmen

Wow. Würde =* ein LEFT JOIN oder RIGHT JOIN sein? Es ist auch lustig, wenn ich versuche, die Anweisung zu schreiben, erhalte ich ---- Die Abfrage verwendet Nicht-ANSI-Outer-Join-Operatoren ("*=" oder "=*"). Um diese Abfrage ohne Änderung auszuführen, setzen Sie bitte den Kompatibilitätsgrad für die aktuelle Datenbank auf 80 oder niedriger, indem Sie die gespeicherte Prozedur sp_dbcmptlevel verwenden. Es wird dringend empfohlen, die Abfrage unter Verwendung von ANSI-Outer-Join-Operatoren (LEFT OUTER JOIN, RIGHT OUTER JOIN) neu zu schreiben. In zukünftigen Versionen von SQL Server werden Nicht-ANSI-Join-Operatoren auch in den Abwärtskompatibilitätsmodi nicht mehr unterstützt.

0 Stimmen

*= ist ein linker Outer Join, und =* ist ein rechter Outer Join. Sie können die alte Syntax in der Sybase-Dokumentation hier manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/… finden. SQL Server und Sybase begannen als dasselbe Produkt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X