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-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (A-D)

 

CREATE EXISTING TABLE-Anweisung

Mit dieser Anweisung erstellen Sie eine neue Proxytabelle, die ein bestehendes Objekt auf einem Fremdserver repräsentiert.

Syntax
CREATE EXISTING TABLE [Eigentümer.]Tabellenname
[ (Spaltendefinition, ...) ]
AT Standort_Zeichenfolge
Spaltendefinition :
Spaltenname Datentyp [NOT NULL
Standort_Zeichenfolge :
  Fremdservername.[DB-Name].[Eigentümer].Objektname
| Fremdservername;[DB-Name];[Eigentümer];Objektname
Parameter
  • AT-Klausel   Die AT-Klausel gibt den Standort des entfernten Objekts an. Die AT-Klausel unterstützt das Semikolon (;) als Begrenzer. Wenn in der Zeichenfolge Speicherort ein Semikolon vorhanden ist, dann ist dies als Feldbegrenzer zu betrachten. Wenn kein Semikolon vorhanden ist, gilt der Punkt als Feldbegrenzer. Damit können Dateinamen oder Erweiterungen in den Datenbank- und Eigentümerfeldern verwendet werden. Die folgende Anweisung ordnet die Tabelle a1 der MS Access Datei mydbfile.mdb zu:
    CREATE EXISTING TABLE a1
    AT 'access;d:\mydbfile.mdb;;a1';

Bemerkungen

Die Anweisung CREATE EXISTING TABLE erstellt eine neue, lokale Proxytabelle, die ein Abbild einer externen Tabelle darstellt. Die Anweisung CREATE EXISTING TABLE ist eine Variante der Anweisung CREATE TABLE. Das Schlüsselwort EXISTING wird mit CREATE TABLE verwendet, um anzugeben, dass bereits eine entfernte Tabelle vorhanden ist und ihre Metadaten in SQL Anywhere importiert werden sollen. Damit wird die entfernte Tabelle als Entität für Benutzer von SQL Anywhere sichtbar. SQL Anywhere prüft, ob die Tabelle am entfernten Standort existiert, bevor die Proxytabelle erstellt wird.

Wenn das Objekt nicht vorhanden ist (als Host-Datendatei oder Fremdserverobjekt), wird die Anweisung mit einer Fehlermeldung zurückgewiesen.

Indexinformationen aus den Hostdatendateien oder aus der Tabelle auf dem Fremdserver werden extrahiert und benutzt, um Zeilen für die Systemtabelle ISYSIDX zu erstellen. Damit werden Indizes und Schlüssel in Serverbegriffen definiert, sodass der Abfrageoptimierer in die Lage versetzt wird, mit Indizes zu arbeiten, die für diese Tabelle eventuell existieren.

Integritätsregeln zur Erhaltung der referenziellen Integrität werden erforderlichenfalls an den Fremdserver weitergeleitet.

Wenn Spaltendefinitionen nicht angegeben sind, leitet SQL Anywhere die Spaltenliste von den Metadaten ab, die aus der entfernten Tabelle bezogen werden. Wenn Spaltendefinitionen angegeben sind, werden diese von SQL Anywhere überprüft. Spaltennamen, Datentypen, Längen, Identitätseigenschaften und NULL-Eigenschaften werden nach folgenden Gesichtspunkten geprüft:

  • Spaltennamen müssen genau übereinstimmen (Groß-/Kleinschreibung wird allerdings ignoriert).

  • Datentypen in der Anweisung CREATE EXISTING TABLE müssen zu den Datentypen der Spalten in der entfernten Tabelle passen oder in sie konvertierbar sein. Beispiel: Der Datentyp einer lokalen Spalte ist als "money" definiert, während der Datentyp der entfernten Spalte "numeric" lautet.

  • Die NULL-Eigenschaften aller Spalten werden geprüft. Wenn die NULL-Eigenschaft der lokalen Spalte nicht identisch mit der der entfernten Spalte ist, wird eine Warnmeldung ausgegeben, die Anweisung allerdings nicht abgebrochen.

  • Die Länge jeder einzelnen Spalte wird geprüft. Wenn die Länge von Spalten des Typs "char", "varchar", "binary", "varbinary", "decimal" und "numeric" nicht übereinstimmt, wird eine Warnmeldung ausgegeben, die Anweisung aber nicht abgebrochen.

    Sie können auch nur eine Teilmenge der entfernten Spaltenliste in die CREATE EXISTING-Anweisung aufnehmen.

Berechtigungen

RESOURCE-Datenbankberechtigung ist erforderlich. Um eine Tabelle für einen anderen Benutzer zu erstellen, brauchen Sie die DBA-Berechtigungen.

Unter Windows Mobile nicht unterstützt.

Nebenwirkungen

Automatisches Festschreiben (Autocommit).

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiele

Eine Proxytabelle namens "blurbs" wird für die Tabelle blurbs auf dem Fremdserver server_a erstellt.

CREATE EXISTING TABLE blurbs
( author_id ID not null,
copy text not null)
AT 'server_a.db1.joe.blurbs';

Eine Proxytabelle namens "blurbs" wird für die Tabelle blurbs auf dem Fremdserver server_a erstellt. SQL Anywhere leitet die Spaltenliste von den Metadaten ab, die von der entfernten Tabelle bezogen werden.

CREATE EXISTING TABLE blurbs
AT 'server_a.db1.joe.blurbs';

Eine Proxytabelle namens "rda_employees" wird für die Tabelle Employees auf dem SQL Anywhere-Fremdserver demo11 erstellt.

CREATE EXISTING TABLE rda_employees
AT 'demo11...Employees';