TSQL (wie in MS SQL Server 2000 und 2005 verwendet) erlaubt mehrere JOIN-Klauseln, eine direkt nach der anderen, keine Kommas oder Klammern erforderlich. Versuchen Sie dies in Access und es wirft eine Anpassung: "Syntaxfehler (fehlender Operator) in Abfrageausdruck ..."Konvertieren von TSQL in MS-Access SQL
Von dem, was ich in Google-Land sammeln konnte, möchte Access SQL Klammern gruppieren JOIN-Klauseln. Die meisten Ratschläge, wie dies zu erreichen ist, verwenden Sie die Entwurfsansicht oder den Abfrageassistenten und lassen Sie Access herausfinden, wohin die Klammern gesetzt werden sollen (die in Standard-SQL NICHT benötigt werden). Das Problem ist, ich bin so daran gewöhnt, meine SQL in einem Texteditor (Notepad, SSMS, VS2005, was auch immer) zu machen, dass die Designansicht und der Assistent in die Quere kommen und mein Skin kriechen. Manchmal machen die Assistenten schlechte Annahmen über das, was beitreten soll, wenn es mehrere Möglichkeiten gibt, und ich bin es so gewohnt, es selbst in TSQL zu tun, dass ich lieber die Assistenten draus lassen würde.
Gibt es kein Tool, das TSQL in Access SQL konvertiert, oder zumindest eine Reihe von Regeln, wo die Klammern gesetzt werden?
Beispiel:
SELECT ...
FROM Participant PAR
INNER JOIN Individual IND
ON PAR.APETSID = IND.APETSID
INNER JOIN Ethnicity ETH
ON IND.EthnicityID = ETH.ID
INNER JOIN Education EDU
ON IND.EducationID = EDU.ID
INNER JOIN Marital MAR
ON IND.Marital = MAR.ID
INNER JOIN Participant-Probation PXP
ON PAR.ID = PXP.ParticipantID
INNER JOIN Probation PBN
ON PXP.ProbationID = PBN.ID
INNER JOIN Class-Participant CXP
ON PAR.ID = CXP.ParticipantID
INNER JOIN Class CLS
ON CXP.ClassID = CLS.ID
INNER JOIN Official OFR
ON PAR.ReferringPO = OFR.ID
INNER JOIN Participant-Official PXO
ON PAR.ID = PXO.ParticipantID
INNER JOIN Official OFA
ON PXO.OfficialID = OFA.ID
Gefunden, dass die Verwendung der SQL Server Compatible Syntax (ANSI 92) auch nicht hilft. – JeffO