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

SAP Sybase SQL Anywhere 16.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » SQL-Dialekte und Kompatibilität

 

Testen der SQL-Konformität mit dem SQL Flagger

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. Sie wurde als optionale SQL-Sprachfunktion F812 des ISO/ANSI 9075-1999 SQL-Standards eingeführt, die in diesem Dokument als SQL/1999 bezeichnet wird. 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.

Da die Unterstützung räumlicher Daten als Teil 3 des SQL/MM-Standards (ISO/IEC 13249-3) standardisiert ist, werden die räumlichen Funktionen, Vorgänge und Syntax vom SQL Flagger nicht unterstützt und als Erweiterungen des Herstellers markiert.

Der SQL Flagger ist dazu gedacht, eine statische Prüfung der Konformitä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/2008 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

Aufrufen des SQL Flagger
Standards und Kompatibilität