Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » SQL-Dialekte und Kompatibilität » SQL-Dialekte

 

SQL-Kompatibilität mithilfe des SQL Flagger prüfen

In SQL Anywhere können der Datenbankserver und der SQL-Präprozessor (sqlpp) SQL-Anweisungen erkennen, die Erweiterungen des Herstellers sind, die nicht kompatibel mit bestimmten ISO/ANSI SQL-Standards sind oder die nicht von UltraLite unterstützt werden. Diese Funktionalität wird als SQL Flagger bezeichnet und ist Teil der ISO/ANSI SQL-Standards SQL/1999 und SQL/2003. Der SQL Flagger hilft Anwendungsentwicklern, SQL-Sprachkonstrukte zu erkennen, die eine angegebene Teilmenge der SQL-Sprache verletzen. Der SQL Flagger kann benutzt werden, um die Kompatibilität mit Kernfunktionen eines SQL-Standards oder mit einer Kombination aus Kernfunktionen und optionalen Funktionen zu gewährleisten. Der SQL Flagger kann auch benutzt werden, um einen Prototyp einer UltraLite-Anwendung mit SQL Anywhere zu erstellen und damit sicherzustellen, dass die verwendete SQL-Version von UltraLite unterstützt wird.

Der SQL Flagger ist dazu gedacht, eine statische Prüfung der Kompatibilität zur Kompilierungszeit zu bieten, obwohl sowohl syntaktische als auch semantische Elemente einer SQL-Anweisung Kandidaten für die Analyse durch den SQL Flagger sind. Ein Beispiel für syntaktische Kompatibilität ist das Fehlen des optionalen Schlüsselwortes INTO in einer INSERT-Anweisung (z.B. INSERT Products VALUES( ... )), wobei es sich um eine SQL Anywhere-Grammatikerweiterung der SQL-Sprache handelt. Die Verwendung einer INSERT-Anweisung ohne das Schlüsselwort INTO wird als Erweiterung des Herstellers gekennzeichnet, da der ANSI-Standard SQL/2003 die Verwendung des Schlüsselworts INTO verlangt. Beachten Sie jedoch, dass das Schlüsselwort INTO für UltraLite-Anwendungen optional ist.

Schlüssel-Joins werden ebenfalls als Erweiterung des Herstellers gekennzeichnet. Ein Schlüssel-Join wird standardmäßig verwendet, wenn das JOIN-Schlüsselwort ohne ON-Klausel benutzt wird. Ein Schlüssel-Join verwendet vorhandene Fremdschlüssel-Beziehungen, um die Tabellen zu verknüpfen. Schlüssel-Joins werden von UltraLite nicht unterstützt. Die folgende Abfrage legt beispielsweise eine implizite Join-Bedingung zwischen den Tabellen "Products" und "SalesOrderItems" fest. Diese Abfrage wird vom SQL Flagger als Erweiterung des Herstellers gekennzeichnet.

SELECT * FROM Products JOIN SalesOrderItems;

Die Funktionalität des SQL Flagger ist nicht von der Ausführung einer SQL-Anweisung abhängig. Die gesamte Flagger-Logik wird lediglich als statischer Prozess zur Kompilierungszeit ausgeführt.

Siehe auch

SQL Flagger aufrufen
Standards und Kompatibilität