Katalog verwalten

#### Search Results

Search

# Katalog verwalten

Mit der Funktion Catalog Maintenance der Natural Tools for Db2 können Sie SQL-Statements zur Verwaltung des Db2-Katalogs (d. h. von Db2-Tabellen und anderen Db2-Objekten) generieren, ohne Ihre Entwicklungsumgebung zu verlassen.

Die Funktion Catalog Maintenance enthält einen SQL-Generator, der aus Ihren Eingaben automatisch den SQLCODE generiert, der für die Pflege des gewünschten Db2-Objekts erforderlich ist. Sie können den generierten SQLCODE anzeigen, ändern, speichern und abrufen.

Die DDL/TML-Definitionen werden in der aktuellen Natural Library gespeichert.

In diesem Kapitel werden die folgenden Themen behandelt:

- Fixed Mode und Free Mode

- Funktion Catalog Maintenance aufrufen

- Tabelle erstellen - Funktion: Create Table

- Tabellenraum erstellen - Funktion: Create Tablespace

- Tabelle ändern - Funktion: Alter Table

- Tabellenraum ändern - Funktion: Alter Tablespace

- SQL Skeleton Members

## Fixed Mode und Free Mode

Die Katalogverwaltungsfunktion bietet zwei Betriebsarten: Fixed Mode und Free Mode.

Um vom Fixed Mode in den Free Mode zu wechseln:

- Drücken Sie PF5 (Free).

Um vom Free Mode in den Fixed Mode zurückzukehren:

- Drücken Sie PF3 (Exit) im Free Mode.

### Fixed Mode

Im Fixed Mode stehen Ihnen Eingabebildschirme mit Syntaxgraphen zur Verfügung, die Sie bei der Eingabe des korrekten SQLCODE unterstützen. Sie geben einfach die erforderlichen Daten in die Eingabemasken ein, und die Daten werden automatisch auf Übereinstimmung mit der Db2-SQL-Syntax überprüft. Ist die Eingabe unvollständig, werden Sie aufgefordert, die fehlenden Daten einzugeben. Anschließend werden aus den eingegebenen Daten SQL-Members generiert. Die Members können durch Drücken von PF4 (Submi) direkt ausgeführt werden. Sie können aber auch PF5 (Free) drücken, um in den Free Mode zu wechseln, in dem der generierte SQLCODE verändert werden kann.

Nach der Ausführung eines SQL-Statements wird eine Meldung zurückgegeben, die anzeigt, dass das Statement erfolgreich ausgeführt wurde. Wenn ein Fehler aufgetreten ist, kann die entsprechende Db2-Fehlermeldung durch Drücken von PF2 (Error) angezeigt werden, wodurch das Kommando `SQLERR` ausgeführt wird.

Die Eingabebildschirme bestehen aus verschiedenen Arten von Eingabefeldern. Dazu gehören:

- Felder zur Eingabe von Db2-Objektnamen,

- Felder zum Aufrufen von Fenstern,

- Felder, die zur Auswahl markiert werden,

- Felder für die Eingabe von Schlüsselwörtern,

- Felder für die Angabe numerischer Werte,

- Felder für die Eingabe von String-Konstanten.

In jedem Feld, in dem ein Fenster aufgerufen werden kann, können Sie ein `S` angeben. Wenn Sie Enter drücken, erscheint das Fenster und Sie können die erforderlichen Informationen auswählen oder eingeben. Wenn eine solche Auswahl erforderlich ist, ist beim Aufruf des entsprechenden Bildes bereits ein `S` voreingestellt.

Wenn Sie erneut Enter drücken, wird das Fenster geschlossen, und wenn Daten eingegeben wurden, wird das Feld mit `X` statt mit `S` gekennzeichnet. Wenn nicht, bleibt das Feld leer oder wird erneut mit `S` gekennzeichnet.

Dies wird jedes Mal fortgesetzt, wenn Sie Enter drücken, bis kein `S` mehr vorhanden ist. Um ein Fenster, in das Daten eingegeben wurden, wieder anzuzeigen, ändern Sie die Markierung `X` wieder in `S`.

Wenn ein anderer Buchstabe oder ein anderes Zeichen verwendet wird, erscheint eine Fehlermeldung auf dem Bildschirm.

Markieren Sie das Feld mit S, um das Fenster anzuzeigen.

Das falsche Zeichen wird automatisch durch ein `S` ersetzt, und wenn Sie erneut Enter drücken, wird das entsprechende Fenster angezeigt.

In Feldern, in denen Schlüsselwörter eingegeben werden sollen, müssen Sie eines der unter dem Feld angezeigten Schlüsselwörter eingeben. Standardschlüsselwörter sind hervorgehoben.

### Free Mode

Wenn der Free Mode vom Fixed Mode aus aufgerufen wird (durch Drücken von PF5 (Free), werden die Daten, die im Fixed Mode eingegeben wurden, als generierter SQLCODE angezeigt, der zur späteren Verwendung oder Änderung gespeichert werden kann.

Wenn Sie ein SQL-Member im Free Mode ändern, hat dies keine Auswirkungen auf die Version des Member im Fixed Mode. Sie können Ihren geänderten Code im Free Mode speichern, aber wenn Sie in den Fixed Mode zurückkehren, erscheinen wieder die Originaldaten. Es sind also sowohl die Originaldaten als auch die geänderten Daten verfügbar.

Im Free Mode können Sie das Member, das sich gerade im Quellcodebereich befindet, durch Drücken von PF4 (Submi) ausführen, wie im Fixed Mode.

Bei der Ausführung von SQL-Statements wird automatisch auf den Ausgabebildschirm umgeschaltet, auf dem der Rückgabecode der ausgeführten Kommandos angezeigt wird.

Eine Liste der im Free Mode verfügbaren SQLCODE-Pflegekommandos finden Sie im Abschnitt Globale Verwaltungskommandos.

## Funktion Catalog Maintenance aufrufen

Um die Funktion Catalog Maintenance aufzurufen:

1. Geben Sie im Hauptmenü Natural Tools for DB2 Main Menu den Funktionscode `C` ein, und drücken Sie Enter.

   Das Menü Catalog Maintenance wird angezeigt:

         16:03:13              ***** NATURAL TOOLS FOR DB2 *****               2009-10-30
                                      - Catalog Maintenance -

               Code   Maintenance  Parameter        Code   Authorization  Parameter

                CR    CREATE       Object            GR    GRANT          Object
                AL    ALTER        Object            RE    REVOKE         Object
                DR    DROP                           LO    LOCK TABLE
                SC    SET SQLID

               Code   Description  Parameter        Code   Function       Parameter

                EN    EXPLAIN                        F     Free Mode      Member
                CO    COMMENT ON                     ?     Help
                LB    LABEL ON                       .     Exit

            Code .. __  Object .... ________
                        Library ... ________
                        Member .... ________

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
               Help        Exit                                                  Canc

   Im Feld Code kann der Funktionscode, der der gewünschten Funktion zugeordnet ist, zusammen mit dem gewünschten Objekt-, Library- und/oder Member-Namen angegeben werden.

   Wenn Sie in den Free Mode wechseln und einen gültigen Member-Namen eingeben, können Sie dieses Member aus der mit dem Parameter Library angegebenen Natural Library lesen. Der Library-Parameter ist mit Ihrer Natural-Benutzerkennung vorbelegt.

   Bei den Funktionen `CREATE VIEW` und `EXPLAIN` muss ein Subselect bzw. ein explainable SQL-Statement eingegeben werden. Beides kann in einer separaten Editor-Sitzung erfolgen, in der zuvor gespeicherte Members verwendet werden können. Der Editor wird durch Eingabe eines `S` in das entsprechende Feld aufgerufen.

   Bei den Funktionen `CREATE`, `ALTER`, `GRANT` und `REVOKE` muss ein Objektcode angegeben werden, zum Beispiel `TB` für `TABLE`. Wenn Sie das Objektfeld leer lassen, wird ein Fenster angezeigt, das Ihnen eine Liste aller verfügbaren Objekte mit ihren Objektcodes anzeigt.

   Wenn Sie z.B. die Funktion `CREATE` eingeben, ohne ein Objekt anzugeben, wird ein Fenster aufgerufen, in dem Sie nach der Art des zu erstellenden Objekts gefragt werden:

         16:03:13              ***** NATURAL TOOLS FOR DB2 *****               2009-10-30
                                      - Catalog Maintenance -

               Code  +----------------------+       Code   Authorization  Parameter
                     ! CREATE               !
                CR   !                      !        GR    GRANT          Object
                AL   ! AL    ALIAS          !        RE    REVOKE         Object
                DR   ! DB    DATABASE       !        LO    LOCK TABLE
                SC   ! IX    INDEX          !
                     ! ST    STOGROUP       !
               Code  ! SY    SYNONYM        !       Code   Function       Parameter
                     ! TB    TABLE          !
                EN   ! TS    TABLESPACE     !        F     Free Mode      Member
                CO   ! VI    VIEW           !        ?     Help
                LB   ! .     Exit           !        .     Exit
                     !                      !
            Code ..  ! __ .. Enter Object   !
                     !                      !
                     +----------------------+

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
               Help        Exit                                                  Canc

Im folgenden Abschnitt wird anhand von Beispielen gezeigt, wie Sie die Catalog Maintenance-Funktion im Fixed Mode verwenden können.

## Tabelle erstellen - Funktion: Create Table

Um die Funktion Create Table aufzurufen:

1. Geben Sie in der Funktion `CREATE` den Objektcode `TB` ein, und drücken Sie Enter.

   Der erste Create Table-Syntaxeingabebildschirm wird angezeigt.

   Auf diesem Bildschirm können Sie den Namen des Erstellers (`creator`) und der Tabelle (`table-name`) sowie die einzelnen Spaltennamen (`column-name`), Spaltenformate (`format`) und Spaltenlängen (`length`) eingeben, wie im folgenden Beispiel dargestellt:

          09:47:19              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                        - Create Table -                        1  / 9

         >>- CREATE TABLE - SAG_____ . DEMOTABLE_________ ----------------------------->
                             <creator.>table-name
         >+--- LIKE ------- ________ . __________________ +-------------------------+-+>
          !                  <creator.>table/view-name    +- _ - INCLUDING IDENTITY + +
          !                                                                           !
          +( COL1______________  CHAR___________ ( 20________ ) _ - __ - _ - __ - _ , +
          +- COL2______________  INTEGER________ ( __________ ) _ - NN - _ - 2_ - _ , +
          +- COL3______________  SMALLINT_______ ( __________ ) _ - NN - _ - 1_ - _ , +
          +- COL4______________  CHAR___________ ( 2_________ ) S - __ - _ - __ - _ , +
          +- COL5______________  VARCHAR________ ( 30________ ) _ - NN - _ - 3_ - _ , +
          +- COL6______________  DECIMAL________ ( 2,5_______ ) _ - __ - X - __ - _ , +
          +- COL7______________  FLOAT__________ ( __________ ) _ - NN - _ - __ - _ , +
          +- COL8______________  DATE___________ ( __________ ) _ - __ - _ - __ - _ , +
          +- COL9______________  TIME___________ ( __________ ) _ - __ - _ - __ - _ , +
          +- __________________  _______________ ( __________ ) _ - __ - _ - __ - _ , +
                column-name          format          length    S/M  NN  fld  PK/ R/C
                                                                B       proc UK  D/G
        Command ===>
        Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
              Help  Error Exit  Exec  Free  --     -     +    ++          Next  Canc

   Anmerkung
   Da die Angabe von Sonderzeichen als Teil eines Natural-Feld- oder DDM-Namens den Natural-Namenskonventionen widerspricht, sollten alle in Db2 zulässigen Sonderzeichen vermieden werden. Das Gleiche gilt für Db2-Bezeichner mit Begrenzungszeichen (Delimited Identifiers), die von Natural nicht unterstützt werden.

   In der oberen rechten Ecke des Bildschirms wird der Index der obersten Spalte (1) und die Gesamtzahl der angegebenen Spalten (9) angezeigt. Wenn Sie mehr Spalten angeben wollen, als auf einen Terminal-Bildschirm passen, drücken Sie PF8 (+), um eine Seite vorwärtszublättern.

   Ein `S` im Feld S/M/B der Spalte `COL4` bedeutet, dass die Option `FOR SBCS DATA` für diese Spalte ausgewählt ist. Andere mögliche Werte für dieses Feld sind `M` (`FOR MIXED DATA`) und `B` (`FOR BIT DATA`).

   Die Spalten `COL3`, `COL2` und `COL5` bilden den Primärschlüssel in der angegebenen Reihenfolge. Primärschlüsselspalten müssen mit einem `S` ausgewählt oder durch Angabe entsprechender Zahlen zwischen 1 und 16 geordnet werden. Im vorliegenden Beispiel sind alle Primärschlüsselspalten als `NOT NULL` definiert. Darüber hinaus ist Spalte 7 als `NOT NULL` angegeben.

   Für Spalte 6 wurde eine Feldprozedur in einem Fenster eingetragen, das durch `S` aufgerufen wurde. Das Fenster wurde wieder geschlossen, und das Feld fld proc ist nun mit `X` markiert.

2. Wenn Sie für eine bestimmte Spalte ein `R` in das Feld R/C/D/G eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie eine References-Klausel angeben können, die diese Spalte als Fremdschlüssel (Foreign Key) einer referentiellen Einschränkung (Constraint) kennzeichnet.

        +---------------------------------------------------------+
        !  References-Clause for Column:  COL1                    !
        !                                                         !
        ! >--- REFERENCES ---- ________ . __________________ -->  !
        !                       <creator.>table-name              !
        ! >-+---------------------------------+---------------->  !
        !   +- ON DELETE --+-- _ - RESTRICT --+                   !
        !                  +-- _ - CASCADE ---+                   !
        !                  +-- _ - SET NULL --+                   !
        !                  +-- _ - NO ACTION -+                   !
        !                                                         !
        +---------------------------------------------------------+

   Sie müssen den Namen (`table-name`) der übergeordneten Tabelle mit einem optionalen Erstellernamen (`creator`) angeben, auf die verwiesen werden soll. Darüber hinaus müssen Sie die Aktion angeben, die ausgeführt werden soll, wenn eine Zeile in der referenzierten Tabelle gelöscht wird. Die folgenden Optionen sind verfügbar:

   - `RESTRICT` oder `NO ACTION` verhindert die Löschung der übergeordneten Zeile, bis alle abhängigen Zeilen gelöscht sind.

   - `CASCADE` löscht auch alle abhängigen Zeilen.

   - `SET NULL` setzt alle Spalten des Fremdschlüssels in jeder abhängigen Zeile, die Nullwerte enthalten können, auf Null.

   - Ein Schlüssel, der aus mehr als einer Spalte besteht, muss durch eine `FOREIGN KEY`-Klausel definiert werden.

3. Wenn Sie in das Feld R/C/D/G für eine bestimmte Spalte ein `C` eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie eine Prüfeinschränkung (`check-constraint`) für diese Spalte angeben können.

         16:08:09             ***** NATURAL TOOLS FOR DB2 *****              2009-10-30
                                       - Create Table -                         1  / 9

          >>--- CREATE TABLE --------- SAG_____ . DEMOTABLE_________ ---------------->
                                        <creator.>table-name
          >+------- LIKE ------------- ________ . __________________ ----------------+->
           !                            <creator.>table/view-name                    !
           +( COL1______________ - CHAR___________ ( 20___ ) - _ - _ -- _ - __ - C ,-+
         +-----------------------------------------------------------------------------+
         !  --- check-constraint  for   Column:    COL1                   -----------  !
         !                                                                             !
         ! >-+-------------------------+- CHECK  ( ___________________________________ !
         !   !                         !           ___________________________________ !
         !   +- CONSTRAINT - ________ -+           ___________________________________ !
         !                 constraint-name         ___________________________________ !
         !                                         ___________________________________ !
         !                                         ___________________________________ !
         !                                                                             !
         !                                                                             !
         +-----------------------------------------------------------------------------+

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--
                           Exit                                                  Canc

   Sie müssen eine Spaltenprüfbedingung angeben. Eine Prüfbedingung ist eine Suchbedingung mit verschiedenen Einschränkungen, die in der entsprechenden Db2-Literatur von IBM ausführlich beschrieben sind. Darüber hinaus können Sie einen Namen für die Prüfbedingung angeben.

4. Wenn Sie in das Feld R/C/D/G für eine bestimmte Spalte ein `D` eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie einen anderen Standardwert als den Systemstandardwert für diese Spalte angeben können.

        10:14:04              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                      - Create Table -                        1  / 9

       +-----------------------------------------------------------------------------+
       !      Default-Clause for Column:  COL1                                       !
       !                                                                             !
       ! >--- _ - WITH DEFAULT --------------------------------------------------->  !
       ! >-+-------------------------+-+----------------------------------+-+---+->  !
       !   +- __________________  ( -+ +-- _ - USER ----------------------+ + ) +    !
       !      cast-function-name       +-- _ - CURRENT SQLID -------------+          !
       !                               +-- _ - NULL ----------------------+          !
       !                                ___________________________________          !
       !                                ___________________________________          !
       !                                ___________________________________          !
       !                                ___________________________________          !
       !                                ___________________________________          !
       !                                             constant                        !
       !                                                                             !
       +-----------------------------------------------------------------------------+
                                                              B       proc UK  D/G
         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--
                           Exit                                                  Canc

   Es kann einer der folgenden Typen von Standardwerten angegeben werden:

   - `USER`: ein Ausführungszeitwert des speziellen Registers `USER`.

   - `CURRENT SQLID`: die SQL-Berechtigungskennung.

   - `NULL`: der Nullwert.

   - `constant`: eine Konstante, die den Standardwert für die Spalte benennt.

   Weitere Informationen zu Standardwerten finden Sie in der entsprechenden Db2-Literatur von IBM.

5. Wenn Sie in das Feld R/C/D/G für eine bestimmte Spalte ein `G` eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie die `GENERATED`-Klausel für diese Spalte definieren können.

        10:18:29              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                      - Create Table -                        1  / 9

       >>- CREATE TABLE - SAG_____ . DEMOTABLE_________ ----------------------------->
       +-----------------------------------------------------------------------------+
       !      GENERATED-Clause for Column:  COL1                                     !
       !                                                                             !
       ! >------ GENERATED ---------+-- _  ALWAYS -------+------------------------>  !
       !                            +-- _  BY DEFAULT ---+                           !
       ! >-+--------------------------------------------------------------------+->  !
       !   +- _  AS IDENTITY -+-----------------------------------------------+-+    !
       !                      +- ( -+-- _  START WITH --- 1__________ --+- ) -+      !
       !                            +-- _  INCREMENT BY - 1__________ --+            !
       !                            ++- _  NO CACHE -------------------++            !
       !                             +- _  CACHE -------- 20_________ -+             !
       !                                                                             !
       +-----------------------------------------------------------------------------+
        +- __________________  _______________ ( __________ ) _ - __ - _ - __ - _ , +
              column-name          format          length    S/M  NN  fld  PK/ R/C
                                                              B       proc UK  D/G
         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--
                           Exit                                                  Canc

   `GENERATED` kann nur definiert werden, wenn die Spalte einen `ROWID`-Datentyp hat (oder einen `distinct type`, der auf einem `ROWID`-Datentyp basiert), oder wenn die Spalte eine Identity-Spalte sein soll.

   Weitere Informationen zur GENERATED-Clause finden Sie in der entsprechenden Db2-Literatur von IBM.

6. Fenster wie das folgende unterstützen Sie bei der Auswahl der richtigen Spalte. Sie werden durch Eingabe des Hilfezeichens (?) in das entsprechende Feld auf dem Bildschirm aufgerufen:

        10:23:44               +----------------------------------+         2009-10-30
                               !  I      INTEGER                  !           1  / 9
                               !  S      SMALLINT                 !
       >>- CREATE TABLE - SAG_ !  F      FLOAT(integer)           ! ----------------->
                           <cr !  RE     REAL                     !
       >+--- LIKE ------- ____ !  DO     DOUBLE                   ! --------------+-+>
        !                  <cr !  DE     DECIMAL(integer,integer) ! DING IDENTITY + +
        !                      !  N      NUMERIC(integer,integer) !                 !
        +( COL1______________  !  CH     CHAR(integer)            !  - _ - __ - _ , +
        +- COL2______________  !  VARC   VARCHAR(integer)         !  - _ - 2_ - _ , +
        +- COL3______________  !  CL     CLOB(integer)            !  - _ - 1_ - _ , +
        +- COL4______________  !  B      BLOB(integer)            !  - _ - __ - _ , +
        +- COL5______________  !  G      GRAPHIC(integer)         !  - _ - 3_ - _ , +
        +- COL6______________  !  VARG   VARGRAPHIC(integer)      !  - _ - __ - _ , +
        +- COL7______________  !  DB     DBCLOB(integer)          !  - _ - __ - _ , +
        +- COL8______________  !  DA     DATE                     !  - _ - __ - _ , +
        +- COL9______________  !  TIME   TIME                     !  - _ - __ - _ , +
        +- __________________  !  TIMES  TIMESTAMP                !  - _ - __ - _ , +
              column-name      !                                  !   fld  PK/ R/C
                               !  RO     ROWID                    !   proc UK  D/G
                               !                                  !
       Command ===>            !  ______ .. Enter Value           !
       Enter-PF1---PF2---PF3-- +----------------------------------+ F10--PF11--PF12---
               Help  Error Exit  Exec  Free  --    -     +     ++          Next  Canc

   Bei komplexen SQL-Statements kann mehr als ein Eingabebildschirm erforderlich sein. In diesem Fall können Sie durch Drücken von PF11 (Next) zum nächsten Bildschirm wechseln oder durch Drücken von PF10 (Prev) zum vorherigen Bildschirm zurückkehren.

   Wie Sie auf dem obigen Bildschirm sehen können, ist der Beginn der Syntaxangabe für ein SQL-Statement immer mit `>>` gekennzeichnet.

7. Da die Syntax der `CREATE TABLE`-Anweisung ziemlich komplex ist, werden drei weitere Bildschirme benötigt. Nachdem alle erforderlichen Informationen auf dem ersten Bildschirm eingegeben wurden, drücken Sie PF11 (Next ), um den nächsten Create Table-Eingabebildschirm anzuzeigen, auf dem Sie weitere optionale Parameter angeben können.

        10:31:51              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                      - Create Table -                         1  / 0

         +-----------------------------------<-----------------------------------+
       >-+-+-------------------------------------------------------------------+-+->
           !                                                                   !
           +- , - FOREIGN KEY ----- ________ ------- _ --- (column-name) ->    !
                                <constraint-name>                              !
                                                                               !
            >---- REFERENCES ------ ________ . __________________ -------->    !
                                     <creator.>table-name                      !
                                                                               !
            >-+---------------------------+----- ON DELETE -+- S - RESTRICT -+-+
              +-- _ --- (column-name) ----+                 +- _ - CASCADE --+
                                                            +- _ - SET NULL -+
                                                            +- _ - NO ACTION +

        Command ===>
        Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
              Help  Error Exit  Exec  Free  --    -     +     ++    Prev  Next  Canc

   Auf diesem Bildschirm können Sie eine referenzielle Einschränkung (Constraint) auf eine andere Tabelle angeben. Geben Sie dazu ein `S` in das Feld column-name (Spaltenname) ein. Es wird eine Liste aller in der aktuellen Tabelle (abhängige Tabelle/Dependent Table) verfügbaren Spalten angezeigt, aus der Sie die Spalte(n) auswählen können, die den Fremdschlüssel in Bezug auf eine andere Tabelle (übergeordnete Tabelle/Parent Table) bilden sollen. Sie können auch einen Namen für die Einschränkung (`constraint-name`) angeben. Wenn nicht, wird der Name der Einschränkung von der ersten Spalte des Fremdschlüssels abgeleitet.

   Ein Fremdschlüssel besteht aus einer oder mehreren Spalten in einer abhängigen Tabelle, die zusammen einen Wert annehmen müssen, der im Primärschlüssel der zugehörigen übergeordneten Tabelle existiert.

   Im REFERENCES-Teil müssen Sie bei den Tabellennamen (mit optionalem Erstellernamen) der übergeordneten Tabelle angeben, die von der angegebenen Einschränkung betroffen sein soll. Darüber hinaus müssen Sie die Aktion angeben, die ausgeführt werden soll, wenn eine Zeile in der referenzierten übergeordneten Tabelle gelöscht wird.

   Die folgenden Optionen sind verfügbar:

   - `RESTRICT` oder `NO ACTION` verhindert die Löschung der übergeordneten Zeile, bis alle abhängigen Zeilen gelöscht sind.

   - `CASCADE` bewirkt, dass alle abhängigen Zeilen ebenfalls gelöscht werden.

   - `SET NULL` setzt alle Spalten des Fremdschlüssels in jeder abhängigen Zeile, die Nullwerte enthalten können, auf Null.

   In der rechten oberen Ecke des Bildschirms wird der Index des aktuell angezeigten referentiellen Constraint-Blocks (1) und die Gesamtzahl der definierten referentiellen Constraint-Blöcke (0) angezeigt.

   Wenn Sie alle Informationen eingegeben haben, können Sie entweder PF10 (Prev) drücken, um zum vorherigen Bildschirm zurückzukehren, oder PF11 (Next), um zum nächsten Bildschirm zu gelangen.

8. Auf dem nächsten Bildschirm haben Sie wieder die Möglichkeit, Spalten als eindeutig zu kennzeichnen. Diesmal können jedoch bis zu sechs Gruppen von eindeutigen Spalten definiert werden, mit bis zu 16 Spalten pro Gruppe. Die einzelnen Spalten werden in einem Fenster angegeben, das für jede Gruppe aufgerufen werden kann.

        10:43:52              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                      - Create Table -

       >---+------------------------------------------ +-------------------------+ -->
           !                                           ! ------ column-name ---- !
           +- , - UNIQUE ----------------------------- !  __  COL1               !
           !                                           !  __  COL2               !
           +- , - UNIQUE ----------------------------- !  __  COL3               !
           !                                           !  __  COL4               !
           +- , - UNIQUE ----------------------------- !  __  COL5               !
           !                                           !                         !
           +- , - UNIQUE ----------------------------- !  __  COL6               !
           !                                           !  __  COL7               !
           +- , - UNIQUE ----------------------------- !  __  COL8               !
           !                                           +-------------------------+
           +- , - UNIQUE ------------------------------  _ -- (column-name) ---+

       Command ===>
       Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                         Exit              --    -     +     ++                Canc

   Da eindeutige Spalten keine Nullwerte enthalten dürfen, wird automatisch ein weiteres Fenster aufgerufen, in dem Sie die als eindeutig angegebenen Spalten auch als `NOT NULL` definieren können (es sei denn, Sie haben sie bereits auf dem ersten Create Table-Bildschirm als solche definiert).

   Wenn Sie alle Informationen eingegeben haben, können Sie entweder PF10 (Prev) drücken, um zum vorherigen Bildschirm zurückzukehren, oder PF11 (Next), um zum letzten Syntaxeingabe-Bildschirm zu gelangen.

9. Auf dem letzten Syntaxeingabe-Bildschirm können Sie nun

   - das Auslassen der aktuellen Tabelle (und auch der Datenbank und des Tabellenraums (Tablespace)), die diese Tabelle enthalten) einschränken.

   - Prüfeinschränkung für die aktuelle Tabelle definieren.

     Um eine Prüfbeschränkung zu definieren, müssen Sie eine Tabellenprüfbedingung angeben. Eine Prüfbedingung ist eine Suchbedingung mit verschiedenen Einschränkungen, die in der entsprechenden Db2-Literatur von IBM beschrieben sind. Darüber hinaus können Sie einen Namen für die Prüfbeschränkung angeben.

        10:47:02              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                      - Create Table -

          >-----+- IN -----------  ________ . ________ ----------------------+------>
                !             <database-name.>tablespace-name                !
                +- IN DATABASE -------------- ________ ----------------------+
                                           database-name

          >------- EDITPROC ------ ________ --------- VALIDPROC -- ________ -------->

          >------- AUDIT --------- _______ ---------- OBJID ------ _____ ----------->
                           ( NONE, CHANGES, ALL )                 integer

          >------- DATA CAPTURE -- _______ ---------- CCSID ------ _______ --------->
                              ( NONE, CHANGES )               ( ASCII, EBCDIC )

          >------- WITH RESTRICT ON DROP -- _ -------------------------------------->

          >------- CHECK --------- _ ----------------------------------------------><
                            check-condition

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--
               Help  Error Exit  Exec  Free                          Prev        Canc

   Wenn Sie auf diesem Bildschirm PF10 (Prev) drücken, kehren Sie zum vorherigen Bildschirm zurück.

   Wie Sie auf dem obigen Bildschirm sehen können, wird das Ende der Syntaxangabe für ein SQL-Statement immer durch `><` angezeigt.

   Eine aktive Hilfe, die aus Auswahllisten in Fenstern besteht, steht für alle Felder zur Verfügung, die auf bestehende Datenbankobjekte verweisen. Die Auswahllisten werden aufgerufen, indem entweder ein Stern (*) oder ein Teil eines Objektnamens, gefolgt von einem Stern, in das entsprechende Eingabefeld eingegeben wird.

   Wenn Sie z.B. `D*` in das Feld `database-name` des obigen Bildschirms eingeben, erscheint ein Fenster, in dem Sie Ihre Auswahlkriterien überprüfen können. Wenn Sie Enter drücken, wird eine Liste aller Datenbanken angezeigt, deren Name mit `D` beginnt.

        10:47:02              ***** NATURAL TO +-----------------------+    2009-10-30
                                      - Create !  Database   Tablespa  !
                                               !  D*______ . ________  !
          >-----+- IN -----------  d*______ .  !                       ! ----+------>
                !             <database-name.> +-----------------------+     !
                +- IN DATABASE --------------  ! Select ==> __         ! ----+
                                           dat !                       !
                                               !   1 DSNDB04  ALLDATA0 !
          >------- EDITPROC ------ ________ -- !   2 DSNDB04  CANTABRD ! __ -------->
                                               !   3 DSNDB04  CDBPR06  !
          >------- AUDIT --------- _______ --- !   4 DSNDB04  DATEGRP  ! ----------->
                           ( NONE, CHANGES, AL !   5 DSNDB04  DECIMALR !
                                               !   6 DSNDB04  DEMO     !
          >------- DATA CAPTURE -- _______ --- !   7 DSNRGFDB DSNRGFTS ! _ --------->
                              ( NONE, CHANGES  !   8 DSNRLST  DSNRLS01 ! CDIC )
                                               !   9 DB27WRK  DSN32K01 !
          >------- WITH RESTRICT ON DROP -- _  !                       ! ----------->
                                               !  10 DB27WRK  DSN4K01  !
          >------- CHECK --------- _ --------- !  11 DSN8D71L DSN8S71B ! ----------><
                            check-condition    !  12 DSN8D71P DSN8S71C !
                                               +-----------------------+
       Command ===>
       Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
             Help  Error Exit  Exec  Free                          Prev        Canc

   Innerhalb der Auswahlliste können Sie nach oben (PF6 / -- oder PF7 / -) oder unten (PF8 / + oder PF9 / ++) blättern und die gewünschte Datenbank auswählen. Der Name der ausgewählten Datenbank wird in das entsprechende Feld auf Ihrem Eingabebildschirm übernommen.

10. Wenn Sie alle Informationen eingegeben haben, können Sie entweder in den Free Mode wechseln (PF5) oder das erstellte Member direkt an Db2 zur Ausführung übergeben (PF4). Wenn die Ausführung erfolgreich ist, erscheint die Meldung

        Statement(s) successful, SQLCODE = 0

    Wenn nicht, wird ein Fehlercode zurückgegeben.

    Im Free Mode zeigt der folgende Bildschirm des Editors den generierten SQLCODE an:

         10:53:50              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
         FREE - Input        SAG                   S 01- ---------------Columns 001 072
        =====>                                                        Scroll ===>  PAGE
         ***** ****************************** top of data *****************************
         00001 CREATE TABLE SAG.DEMOTABLE
         00002   (COL1                 CHAR(20),
         00003    COL2                 INTEGER                NOT NULL,
         00004    COL3                 SMALLINT               NOT NULL,
         00005    COL4                 CHAR(2)                FOR SBCS DATA,
         00006    COL5                 VARCHAR(30)            NOT NULL,
         00007    COL6                 DECIMAL(2,5)
         00008      FIELDPROC PROGNAME
         00009        ('STRING1','STRING2'),
         00010    COL7                 FLOAT                  NOT NULL,
         00011    COL8                 DATE,
         00012    COL9                 TIME,
         00013   PRIMARY KEY (COL3,                    COL2,
         00014                COL5)
         00015   )
         00016   IN DSNDB04.DEMO;
         ***** **************************** bottom of data ****************************

          Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                Help  Setup Exit  Exec  Rfind Rchan -     +     Outpu             Canc

    Der Free Mode Editor ist eine angepasste Version des Software AG Editors. Er ist nahezu identisch mit dem interaktiven ISQL - Input-Bildschirm. Jedoch können im Free Mode keine `SELECT`-Statements abgesetzt werden.

    Weitere Einzelheiten entnehmen siehe Software AG Editor-Dokumentation.

## Tabellenraum erstellen - Funktion: Create Tablespace

Um die Funktion Create Tablespace aufzurufen:

1. Geben Sie im Bildschirm Catalog Maintenance den Code `CR` ein.

   Geben Sie im Feld Object den Code `TS` ein und drücken Sie Enter.

   Der erste Bildschirm zur Eingabe der Syntax von Create Tablespace wird angezeigt:

         16:08:09              ***** NATURAL TOOLS FOR DB2 *****              2009-10-30
                                       - Create Tablespace -

          >>-- CREATE TABLESPACE ----- TS1_____ -------- IN ----- ________ ----------->
                                   tablespace-name             database-name

                    +- VCAT ---- ________ -------------------------------------------+
          >- USING -+          catalog-name                                          +->
                    +- STOGROUP- ________ - PRIQTY  ____ - SECQTY  ___ - ERASE  ___ -+
                               stogroup-name      integer       integer   ( YES or NO )

          >--- FREEPAGE -------- ___ ----- PCTFREE -- __ ------------ COMPRESS  ___ --->
                               integer            integer                 ( YES or NO )

          >--- NUMPARTS -------- __ ----- _ ------------------------------------------->
                               integer    PART

          >--- SEGSIZE --------- __ --------------------------------------------------->
                               integer

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--
               Help  Error Exit  Exec  Free                                Next  Canc

2. Wenn Sie alle erforderlichen Informationen eingegeben haben, drücken Sie PF11 (Next), um zum nächsten Bildschirm zu gelangen:

         16:08:09              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                      - Create Tablespace -

         >---+---------------------------------------------------------------------+--><
             !                                                                     !
             +--- BUFFERPOOL ------ ______ ----------------------------------------+
             !                  bufferpool-name                                    !
             +--- LOCKSIZE -+------ _________ ------------------------+------------+
             !              !( ANY, TABLE, TABLESPACE )               !            !
             !              +------ ____ ---+----------------------+--+            !
             !               ( ROW or PAGE )!                      !               !
             !                              +- LOCKMAX -- ______ --+               !
             !                                     ( SYSTEM or integer )           !
             +--- CLOSE ----------- ___ -------------------------------------------+
             !                ( YES or NO )                                        !
             +--- DSETPASS -------- ________ --------------------------------------+
                                    password

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12--
               Help  Error Exit  Exec  Free                          Prev        Canc

   Auf dem zweiten Bildschirm zur Syntaxeingabe für Create Tablespace können Sie nun zusätzliche Buffer Pool-Namen sowie die Option `LOCKSIZE` mit der Klausel `LOCKMAX` angeben.

   Wenn Sie ein `S` in das Feld `bufferpool-name` eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie zusätzliche Buffer Pool-Namen angeben können.

   Weitere Einzelheiten zu den Klauseln `COMPRESS`, `LOCKSIZE` und `LOCKMAX` finden Sie in der entsprechenden Db2-Literatur von IBM.

## Tabelle ändern - Funktion: Alter Table

Das folgende Beispiel veranschaulicht die Verwendung des Bildschirms zur Syntaxeingabe für die Funktion Alter Table.

Um die Funktion Alter Table aufzurufen:

1. Geben Sie im Bildschirm Catalog Maintenance den Code `AL` ein.

   Geben Sie im Feld Object den Code `TB` ein und drücken Sie Enter.

   Es erscheint der Bildschirm Alter Table, auf dem sie Folgendes angeben können:

       11:01:47              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                       - Alter Table -

       >>-- ALTER TABLE ------------- ________ . __________________ ----------------->
                                       <creator.>table-name
       >-+- ALTER  __________________ -- SET DATA TYPE - VARCHAR - ( __________ ) --+>
         !             column-name                                     length       !
       >-+- ADD  __________________ _______________  ( __________ ) - _ -- __ - __ -->
         !          column-name         format           length     S/M/B  NN  UK/PK
         !    +--<
         !    +>- _ ------ _ ---------- _ -------------- _ --------------- _ -------+>
         !   field-proc default   check-constr   reference-constr   GENERATED-Clause!
         !                                                                          !
       >-+- VALIDPROC --------------- ________ -------------------------------------+>
         !                        program-name or NULL                              !
         +- AUDIT ------------------- _______ --------------------------------------+
         !                        ( NONE, CHANGES, ALL )                            !
         +- DATA CAPTURE ------------ _______ --------------------------------------+
                                   ( NONE, CHANGES )

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
               Help  Error Exit  Exec  Free                                Next  Canc

2. Wenn Sie im Eingabefeld `field-proc` ein `S` eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie eine Feldprozedur angeben können, die für diese Spalte ausgeführt werden soll:

        11:05:47              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                       - Alter Table -

       >>-- ALTER TABLE ------------- ________ . __________________ ----------------->
                                       <creator.>table-name
       >-+- ALTER  __________________ -- SET DATA TYPE - VARCHAR - ( __________ ) --+>
         !             column-name                                     length       !
       >-+- ADD  __________________ _______________  ( __________ ) - _ -- __ - __ -->
         !          column-name         format           length     S/M/B  NN  UK/PK
         !    +--<              +-----------------------+
         !    +>- S ------ _ -- !             1 / 0     !  --------------- _ -------+>
         !   field-proc default ! --- FIELDPROC ----    ! -constr   GENERATED-Clause!
         !                      !      ________         !                           !
       >-+- VALIDPROC --------- !    program-name       ! --------------------------+>
         !                      !  ( ____________ ,     !                           !
         +- AUDIT ------------- !    ____________ ,     ! --------------------------+
         !                      !    ____________ )     !                           !
         +- DATA CAPTURE ------ !    (constants,)       ! --------------------------+
                                !                       !
                                !                       !
                                +-----------------------+
       Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                           Exit                                                  Canc

3. Wenn Sie ein `S` in das Feld `default` eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie einen anderen Standardwert als den Systemstandardwert für diese Spalte angeben können:

        11:07:31              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                       - Alter Table -

       +-----------------------------------------------------------------------------+
       ! >--- _ - WITH DEFAULT --------------------------------------------------->  !
       ! >-+-------------------------+-+----------------------------------+-+---+->< !
       !   +- __________________  ( -+ +-- _ - USER ----------------------+ + ) +    !
       !      cast-function-name       +-- _ - CURRENT SQLID -------------+          !
       !                               +-- _ - NULL ----------------------+          !
       !                                ______________________________               !
       !                                ______________________________               !
       !                                ______________________________               !
       !                                ______________________________               !
       !                                ______________________________               !
       !                                             constant                        !
       !                                                                             !
       !                                                                             !
       !                                                                             !
       +-----------------------------------------------------------------------------+

       Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                           Exit                                                  Canc

   Es kann einer der folgenden Typen von Standardwerten angegeben werden:

   - `USER`: ein Ausführungszeitwert des Spezialregisters `USER.`

   - `CURRENT SQLID`: die SQL-Berechtigungskennung.

   - `NULL`: der Nullwert.

   - `constant`: eine Konstante, die den Standardwert für die Spalte benennt.

   Weitere Informationen zu Standardwerten finden Sie in der entsprechenden Db2-Literatur von IBM.

4. Wenn Sie im Feld `check-constraint` ein `S` eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie einen Prüfeinschränkung für diese Spalte angeben können:

        11:09:02              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                       - Alter Table -

       >>-- ALTER TABLE ------------- ________ . __________________ ----------------->
                                       <creator.>table-name
       >-+- ALTER  __________________ -- SET DATA TYPE - VARCHAR - ( __________ ) --+>
         !             column-name                                     length       !
       >-+- ADD  __________________ _______________  ( __________ ) - _ -- __ - __ -->
         !          column-name         format           length     S/M/B  NN  UK/PK
         !    +--<
         !    +>- _ ------ _ ---------- S -------------- _ --------------- _ -------+>
         !   field-proc default   check-constr   reference-constr   GENERATED-Clause!
       +-----------------------------------------------------------------------------+
       ! >-+-------------------------+- CHECK  ( ___________________________________ !
       !   !                         !           ___________________________________ !
       !   +- CONSTRAINT - ________ -+           ___________________________________ !
       !                 constraint-name         ___________________________________ !
       !                                                                             !
       !                                         ___________________________________ !
       !                                         ___________________________________ !
       !                                                                             !
       +-----------------------------------------------------------------------------+
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                           Exit                                                  Canc

   Sie müssen eine Spaltenprüfbedingung angeben. Eine Prüfbedingung ist eine Suchbedingung mit verschiedenen Einschränkungen, die in der entsprechenden Db2-Literatur von IBM ausführlich beschrieben sind. Zusätzlich können Sie einen Namen für die Prüfeinschränkung angeben.

5. Wenn Sie im Feld `reference-constraint` ein `S` eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie eine `references`-Klausel angeben können, die diese Spalte als Fremdschlüssel einer referentiellen Einschränkung (`reference-constr`) identifiziert:

        11:10:36              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                       - Alter Table -

       >>-- ALTER TABLE ------------- ________ . __________________ ----------------->
                                       <creator.>table-name
       >-+- ALTER  __________________ -- SET DATA TYPE - VARCHAR - ( __________ ) --+>
         !             column-name                                     length       !
       >-+- ADD  __________________ _______________  ( __________ ) - _ -- __ - __ -->
         !          column-name         format           length     S/M/B  NN  UK/PK
         !    +--<
         !    +>- _ ------ _ ---------- _ -------------- S --------------- _ -------+>
         !   field-proc default   check-constr   reference-constr   GENERATED-Clause!
         !        +---------------------------------------------------------+       !
       >-+- VALID ! >--- REFERENCES ---- ________ . __________________ -->  ! ------+>
         !        !                       <creator.>table-name              !       !
         +- AUDIT ! >-+---------------------------------+---------------->  ! ------+
         !        !   +- ON DELETE --+-- _ - RESTRICT --+                   !       !
         +- DATA  !                  +-- _ - CASCADE ---+                   ! ------+
                  !                  +-- _ - SET NULL --+                   !
                  !                  +-- _ - NO ACTION -+                   !
                  !                                                         !
       Command == !                                                         !
       Enter-PF1- !                                                         ! -PF12---
                  +---------------------------------------------------------+  Canc

   Sie müssen den Namen (mit einem optionalen Erstellernamen) der übergeordneten Tabelle angeben, auf die verwiesen werden soll. Darüber hinaus müssen Sie die Aktion angeben, die ausgeführt werden soll, wenn eine Zeile in der referenzierten Tabelle gelöscht wird. Die folgenden Optionen sind verfügbar:

   - `RESTRICT` oder `NO ACTION` verhindert die Löschung der übergeordneten Zeile, bis alle abhängigen Zeilen gelöscht sind.

   - `CASCADE` löscht auch alle abhängigen Zeilen.

   - `SET NULL` setzt alle Spalten des Fremdschlüssels in jeder abhängigen Zeile, die Nullwerte enthalten können, auf Null.

6. Wenn Sie Ihre Spaltendefinitionen eingegeben haben, drücken Sie PF11 ( Next).

   Es wird ein Bildschirm aufgerufen, auf dem Sie Primär- und/oder Fremdschlüssel hinzufügen oder weglassen können:

        11:14:42              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                       - Alter Table -

       >--+--- ADD ------ PRIMARY KEY ------------------- _ -- (column-name) ---+
          !                                                                     !
          +--- DROP ----- PRIMARY KEY ------------------- _ --------------------+-->

       >--+->- ADD ------ FOREIGN KEY --- ________ ------ _ -- (column-name) -->
          !                            constraint-name
          ! >- REFERENCES ----> ________ . __________________ ----------------->
          !                      <creator.>table-name
          ! >-+---------------------------+------ ON DELETE -+- S - RESTRICT -+-+-->
          !   +--- _ --- (column-name) ---+                  +- _ - CASCADE --+ !
          !                                                  +- _ - SET NULL -+ !
          !                                                  +- _ - NO ACTION + !
          +->- DROP ----- FOREIGN KEY --- ________ -----------------------------+
                                       constraint-name

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
               Help  Error Exit  Exec  Free                          Prev  Next  Canc

7. Nachdem Sie die erforderlichen Informationen zum Hinzufügen und/oder Löschen von Primär- und/oder Fremdschlüsseln eingegeben haben, drücken Sie PF11 (Next). Es wird ein Bildschirm aufgerufen, auf dem Sie eine `RESTRICT ON DROP`-Klausel angeben, eine `CHECK`-Einschränkung (Constraint) hinzufügen oder löschen und/oder eine beliebige Einschränkung löschen können:

         12:20:24              ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                         - Alter Table -

         >---+-- ADD --- _ --+----- RESTRICT ON DROP --------------------------------->
             !               !
             +-- DROP -- _ --+

         >------ ADD CHECK ----------- _ --------------------------------------------->
                                    check-condition

         >------ DROP CHECK  --------- ________ -------------------------------------->
                                    constraint-name

         >------ DROP CONSTRAINT ----- ________ -------------------------------------->
                                    constraint-name

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
               Help  Error Exit  Exec  Free                          Prev        Canc

## Tabellenraum ändern - Funktion: Alter Tablespace

Das folgende Beispiel veranschaulicht die Benutzung des Bildschirms zur Eingabe der Syntax für die Funktion Alter Tablespace.

Um die Funktion Alter Tablespace aufzurufen:

1. Geben Sie im Bildschirm Catalog Maintenance den Code `AL` ein.

   Geben Sie im Feld Object den Code `TS` ein und drücken Sie Enter.

   Sie gelangen auf den Bildschirm Alter Tablespace, auf dem Sie die folgenden Angaben machen können:

         12:20:24             ***** NATURAL TOOLS FOR DB2 *****              2009-10-30
                                     - Alter Tablespace -

          >>------------- ALTER TABLESPACE -- ________ . ________ -------------------->
                                         <database-name.>tablespace-name

                     +-->- BUFFERPOOL ------- ______ -----------------+
                     !                   bufferpool-name              !
           >---------+-->- CLOSE ------------ ___ --------------------+--------------->
                     !                   ( YES or NO )                !
                     +-->- DSETPASS --------- ________ ---------------+
                     !                        password                !
                     +-->- PART ------------- __ ---------------------+
                     !                      integer                   !
                     +-->- FREEPAGE --------- ___ --------------------+
                     !                      integer                   !
                     +-->- PCTFREE ---------- __ ---------------------+
                     !                      integer                   !
                     +-->- COMPRESS --------- ___ --------------------+
                                         ( YES or NO )

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
               Help  Error Exit  Exec  Free                                Next  Canc

2. Wenn Sie ein `S` in das Feld `bufferpool-name` eingeben und Enter drücken, wird ein Fenster angezeigt, in dem Sie weitere Buffer Pool-Namen angeben können:

         12:20:24             ***** NATURAL TOOLS FOR DB2 *****              2009-10-30
                                     - Alter Tablespace -
                                                      +--------------------------------+
          >>------------- ALTER TABLESPACE -- _______ !                                !
                                         <database-na !     Valid values for           !
                                                      !     bufferpool-name:           !
                     +-->- BUFFERPOOL ------- S_____  ! ----------------------------   !
                     !                   bufferpool-n !                                !
           >---------+-->- CLOSE ------------ ___ --- !  -  4KB buffer pools -         !
                     !                   ( YES or NO  !  BPO, BP1, BP2, ..., BP49      !
                     +-->- DSETPASS --------- _______ !                                !
                     !                        passwor !  - 32KB buffer pools -         !
                     +-->- PART ------------- __ ---- !  BP32K, BP32K1, ..., BP32K9    !
                     !                      integer   !                                !
                     +-->- FREEPAGE --------- ___ --- !  ______  Selection             !
                     !                      integer   !                                !
                     +-->- PCTFREE ---------- __ -----+--------------------------------+
                     !                      integer                   !
                     +-->- COMPRESS --------- ___ --------------------+
                                         ( YES or NO )

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
                           Exit                                                  Canc

3. Wenn Sie sich wieder auf dem ersten Bildschirm für die Eingabe der Alter Tablespace-Syntax befinden, drücken Sie PF11 ( Next), um zum nächsten Bildschirm zu gelangen:

         12:20:24             ***** NATURAL TOOLS FOR DB2 *****             2009-10-30
                                      - Alter Tablespace -

                                  +- VCAT ----- ________ --+
                     +-->- USING -+          catalog-name  +---------------+
                     !            +- STOGROUP - ________ --+               !
                     !                      stogroup-name                  !
           >---------+-->- PRIQTY ------------- ____ ----------------------+------><
                     !                        integer                      !
                     +-->- SECQTY ------------- ___ -----------------------+
                     !                        integer                      !
                     +-->- ERASE -------------- ___ -----------------------+
                     !                      (YES or NO)                    !
                     +-->- LOCKMAX ------------ ______ --------------------+
                     !                      (SYSTEM or integer)            !
                     +-->- LOCKSIZE ---+------- ____ --- LOCKMAX - ______ -+
                                       ! (PAGE or ROW)  (SYSTEM or integer)!
                                       +------- __________ ----------------+
                                            (ANY, TABLE or TABLESPACE)

         Command ===>
         Enter-PF1---PF2---PF3---PF4---PF5---PF6---PF7---PF8---PF9---PF10--PF11--PF12---
               Help  Error Exit  Exec  Free                          Prev        Canc

4. Auf dem zweiten Bildschirm zur Eingabe der Alter Tablespace-Syntax können Sie nun die Optionen `LOCKMAX` und `LOCKSIZE` angeben.

   Weitere Einzelheiten zu den Klauseln `COMPRESS`, LOCKSIZE und `LOCKMAX` finden Sie in der entsprechenden Db2-Literatur von IBM.

## SQL Skeleton Members

SQL Skeleton Members werden für die Verarbeitung der folgenden SQL-Statements bereitgestellt, die von der Catalog Maintenance-Funktion nicht unterstützt werden:

- `CREATE AUXILIARY TABLE`

- `CREATE DISTINCT TYPE`

- `CREATE TRIGGER`

- `GRANT ALTERIN`

- `REVOKE ALTERIN`

Ein SQL Skeleton Member ist ein Natural-Text-Objekt, das ein SQL-Skelett enthält, das den Db2-SQL-Syntaxregeln entspricht, wie sie in der entsprechenden IBM-Literatur beschrieben sind. Die in Kleinbuchstaben dargestellten ersetzbaren Elemente des SQL-Skeletts müssen mit Benutzereingaben gefüllt werden, damit das Skelett zu einem gültigen SQL-Statement wird, das im Free Mode (siehe Free Mode) oder ISQL (siehe Interaktives SQL) ausgeführt werden kann. Die Textobjekte des Skeletts werden zusammen mit Beispiel-SQL-Textobjekten in der Natural System Library SYSDB2 ausgeliefert.

### On this page

- Fixed Mode und Free Mode
- Funktion Catalog Maintenance aufrufen
- Tabelle erstellen - Funktion: Create Table
- Tabellenraum erstellen - Funktion: Create Tablespace
- Tabelle ändern - Funktion: Alter Table
- Tabellenraum ändern - Funktion: Alter Tablespace
- SQL Skeleton Members