2017-06-27 18 views
0

Es scheint, dass mit nur in Sybase SQL Anywhere unterstützt: http://dcx.sybase.com/1100/en/dbusage_en11/commontblexpr-s-5414852.htmlEntspricht WITH-Klausel in Sybase ASE

... aber nicht in Sybase ASE :(

jemand vorschlagen kann, wenn Es gibt ein anderes Konstrukt in Sybase ASE Es gibt andere Möglichkeiten, Dinge zu implementieren, anstatt WITH zu verwenden, aber wir planen, einige unserer dynamisch generierten SQLs für die Ausführung in Sybase umzuwandeln und WITH oder etwas, das dieser Syntax sehr ähnlich ist erwünscht

Antwort

1

ASE unterstützt keine allgemeinen Tabellenausdrücke (z. B. WITH-Klausel).

Die (offensichtlichen) Problemumgehungen wären #temp Tabellen, Ansichten, materialisierte Ansichten (auch vorberechnete Ergebnismengen), Tabellenvariablen (ASE 16.0 SP02 +) und in begrenzten Situationen möglicherweise abgeleitete Tabellen und/oder (korrelierte) Unterabfragen .


HINWEIS: Ich mit SQL nicht überall funktionieren so nicht sicher, ob dies technisch machbar ist, aber FWIW ...

ich es denke ist wahrscheinlich ein Weg, um das Einrichten eines Proxy-Tabelle von SQL Anywhere zu ASE, mit der Idee, Ihre CTE/WITH-Abfrage in SQL Anywhere auszuführen.

Natürlich, selbst wenn das technisch möglich ist, benötigen Sie zusätzlichen Aufwand für die Wartung der SQL Anywhere-Datenbank, und die Leistung solcher Interserver-Abfragen ist wahrscheinlich inakzeptabel (z. B. alle Daten von ASE in SQL Anywhere) um den CTE tatsächlich zu verwirklichen).

+0

Danke! Ja, Proxy in SQL Anywhere wäre ein Overkill. –

Verwandte Themen