Tabelle erstellen (SQL Server Compact Edition)

Erstellt eine neue Tabelle von Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition).

Syntax

CREATE TABLE table_name 
   ( { < column_definition > | < table_constraint > } [ ,...n ] 
   ) 
< column_definition > ::= 
   { column_name data_type } 
   [ { DEFAULT constant_expression 
      | [ IDENTITY [ ( seed , increment ) ]
      ]
    } ] 
   [ ROWGUIDCOL ] 
   [ < column_constraint > [ ...n ] ]
< column_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ NULL | NOT NULL ] 
      | [ PRIMARY KEY | UNIQUE ] 
      | REFERENCES ref_table [ ( ref_column ) ] 
      [ ON DELETE { CASCADE | NO ACTION } ] 
      [ ON UPDATE { CASCADE | NO ACTION } ] 
   }
< table_constraint > ::= 
   [ CONSTRAINT constraint_name ] 
   { [ { PRIMARY KEY | UNIQUE } 
      { ( column [ ,...n ] ) } 
      ]
   | FOREIGN KEY 
     ( column [ ,...n ] )
      REFERENCES ref_table [ ( ref_column [ ,...n ] ) ] 
      [ ON DELETE { CASCADE | NO ACTION } ]
      [ ON UPDATE { CASCADE | NO ACTION } ] 
   }

Argumente

  • table_name
    Der Name der neuen Tabelle. Ein Tabellenname muss den Regeln für Bezeichner entsprechen. Der für table_name angegebene Tabellenname muss innerhalb der Datenbank eindeutig sein. Ein table_name-Parameter darf maximal 128 Zeichen lang sein.
  • column_name ,
    Der Name einer Spalte der Tabelle. Jeder Spaltenname muss den Regeln für Bezeichner entsprechen und muss innerhalb der Tabelle eindeutig sein.

    Hinweis:
    In einer SQL Server Compact Edition-Datenbank darf kein Spaltenname mit "__sys" anfangen. __sysobjects ist z. B. ein nicht zulässiger Spaltenname.
  • DEFAULT ,
    Gibt den Wert an, der für die Spalte bereitgestellt wird, wenn bei einer INSERT-Aktion kein Wert explizit angegeben ist. DEFAULT-Definitionen können auf jede Spalte angewendet werden. Davon ausgenommen sind lediglich Spalten, die durch die IDENTITY-Eigenschaft definiert sind. DEFAULT-Definitionen werden entfernt, wenn die Tabelle mit DROP TABLE gelöscht wird. Ein konstanter Wert kann als DEFAULT-Wert verwendet werden.
  • IDENTITY ,
    Zeigt an, dass die neue Spalte eine Identitätsspalte ist. Wenn der Tabelle eine neue Zeile hinzugefügt wird, stellt SQL Server Compact Edition einen eindeutigen inkrementellen Wert für die Spalte bereit. Identitätsspalten werden grundsätzlich zusammen mit der PRIMARY KEY-Einschränkung verwendet, damit sie als Zeilen-ID für die Tabelle fungieren. Die IDENTITY-Eigenschaft kann nur int-Spalten zugewiesen werden. Für jede Tabelle kann nur eine Identitätsspalte erstellt werden. Für eine Identitätsspalte können weder gebundene Standardwerte noch DEFAULT-Einschränkungen verwendet werden. Geben Sie für seed und increment einen Wert an, oder geben Sie keinen Wert an. Ist kein Wert angegeben, ist der Standardwert (1,1).
  • seed ,
    Der Wert, der für die erste Zeile verwendet wird, die in die Tabelle geladen wird.
  • increment ,
    Der inkrementelle Wert, der zu dem Identitätswert der zuvor geladenen Zeile addiert wird.
  • ROWGUIDCOL ,
    Zeigt an, dass die neue Spalte eine globale uniqueidentifier-Spalte für die Zeilen ist. Für jede Tabelle kann nur eine uniqueidentifier-Spalte als ROWGUIDCOL-Spalte festgelegt werden. Die ROWGUIDCOL-Eigenschaft kann nur einer uniqueidentifier-Spalte zugewiesen werden.

    ROWGUIDCOL generiert automatisch Werte für neue Zeilen, die in die Tabelle eingefügt werden.

  • CONSTRAINT ,
    Ein optionales Schlüsselwort, das den Anfang einer PRIMARY KEY-, UNIQUE- oder FOREIGN KEY-Einschränkungsdefinition kennzeichnet. Einschränkungen sind besondere Eigenschaften, die die Datenintegrität erzwingen und für die Tabelle sowie deren Spalten spezielle Arten von Indizes erstellen.
  • constraint_name ,
    Der Name einer Einschränkung. Dieser Name ist optional. Ist für constraint_name ein Name angegeben, muss er innerhalb der Datenbank eindeutig sein. Wenn für constraint_name kein Name angegeben ist, generiert SQL Server Compact Edition einen Einschränkungsnamen.
  • NULL | NOT NULL ,
    Schlüsselwörter, die angeben, ob in der Spalte NULL-Werte zulässig sind. NULL ist genau genommen keine Einschränkung, kann aber auf dieselbe Weise angegeben werden wie NOT NULL.
  • PRIMARY KEY ,
    Eine Einschränkung, die einen eindeutigen Index dazu verwendet, die Entitätsintegrität für eine bestimmte Spalte oder für Spalten zu erzwingen. Für jede Tabelle kann nur eine PRIMARY KEY-Einschränkung erstellt werden.
  • UNIQUE ,
    Eine Einschränkung, die einen eindeutigen Index dazu verwendet, die Entitätsintegrität für eine bestimmte Spalte oder für Spalten bereitzustellen. Spalten in einer UNIQUE-Einschränkung können den Wert NULL aufweisen, aber nur ein NULL-Wert pro Spalte ist zulässig. Eine Tabelle kann mehrere UNIQUE-Einschränkungen haben.

    Hinweis:
    SQL Server Compact Edition kann Indizes dazu verwenden, PRIMARY KEY- und UNIQUE-Einschränkungen zu erzwingen. Es empfiehlt sich, dass Sie sich weder auf dieses Verhalten verlassen noch versuchen, irgendeinen Index zu ändern, der als Teil einer Einschränkung erstellt wurde.
  • FOREIGN KEY...REFERENCES ,
    Eine Einschränkung, die referenzielle Integrität für die Daten in der Spalte erreicht. Jede FOREIGN KEY-Einschränkung erfordert, dass jeder Wert in der angegebenen Spalte der Tabelle vorhanden ist, auf die verwiesen wird.
  • ref_table ,
    Der Name der Tabelle, auf die die FOREIGN KEY-Einschränkung verweist.
  • ( ref_column [ ,...n ] ) ,
    Eine Spalte oder eine Liste aus Spalten der Tabelle, auf die die FOREIGN KEY-Einschränkung verweist.
  • ON DELETE {CASCADE | NO ACTION} ,
    Gibt an, welche Aktion für eine Zeile der zu erstellenden Tabelle ausgeführt wird, wenn diese Zeile eine referenzielle Beziehung hat, die Zeile, auf die verwiesen wird, aber aus der übergeordneten Tabelle gelöscht wurde. Die Standardeinstellung ist NO ACTION.

    Ist CASCADE angegeben, wird eine Zeile aus der verweisenden Tabelle gelöscht, wenn die entsprechende Zeile, auf die verwiesen wird, aus der übergeordneten Tabelle gelöscht wurde. Ist NO ACTION angegeben, gibt SQL Server Compact Edition einen Fehler zurück, und es wird für die Löschaktion der Zeile, auf die verwiesen wird, in der übergeordneten Tabelle ein Rollback ausgeführt.

  • ON UPDATE {CASCADE | NO ACTION}
    Gibt an, welche Aktion für eine Zeile der zu erstellenden Tabelle ausgeführt wird, wenn diese Zeile eine referenzielle Beziehung hat, die Zeile, auf die verwiesen wird, aber in der übergeordneten Tabelle aktualisiert wurde. Die Standardeinstellung ist NO ACTION.

    Ist CASCADE angegeben, wird die Zeile in der verweisenden Tabelle aktualisiert, wenn die entsprechende Zeile, auf die verwiesen wird, in der übergeordneten Tabelle aktualisiert wurde. Ist NO ACTION angegeben, gibt SQL Server Compact Edition einen Fehler zurück, und es wird für die Aktualisierungsaktion der Zeile, auf die verwiesen wird, in der übergeordneten Tabelle ein Rollback ausgeführt.

  • column ,
    Eine in runden Klammern angegebene Spalte oder Liste aus Spalten, die in Tabelleneinschränkungen verwendet wird, um die Spalten anzugeben, die in der Einschränkungsdefinition verwendet werden.

Hinweise

Spaltendefinitionen

Sie müssen mindestens eine Spaltendefinition angeben, wenn Sie eine Tabelle erstellen.

Einschränkungen

  • PRIMARY KEY-Einschränkungen
    • Eine Tabelle kann nur eine PRIMARY KEY-Einschränkung enthalten.
    • Jede PRIMARY KEY-Einschränkung bewirkt, dass ein Index generiert wird.
    • Jede Spalte, die als eine PRIMARY KEY-Einschränkung definiert ist, muss als NOT NULL-Spalte definiert sein. Ist die NULL-Zulässigkeit nicht angegeben, wird die NULL-Zulässigkeit für alle Spalten, die zu einer PRIMARY KEY-Einschränkung gehören, auf NOT NULL festgelegt.
  • UNIQUE-Einschränkungen
    • Jede UNIQUE-Einschränkung bewirkt, dass ein Index generiert wird.
  • FOREIGN KEY-Einschränkungen
    • Wird ein Wert ungleich NULL in die Spalte einer FOREIGN KEY-Einschränkung eingegeben, muss der Wert in der Spalte, auf die verwiesen wird, vorhanden sein; anderenfalls wird eine Fremdschlüsselverletzungs-Fehlermeldung zurückgegeben.
    • Eine FOREIGN KEY-Einschränkung kann auf eine andere Spalte in derselben Tabelle verweisen. Dies wird als Verweis auf sich selbst oder Eigenverweis bezeichnet. FOREIGN KEY-Einschränkungen können aber nicht dazu verwendet werden, eine auf sich selbst verweisende oder zirkuläre FOREIGN KEY-Einschränkung zu erstellen.
    • Die REFERENCES-Klausel einer FOREIGN KEY-Einschränkung auf Spaltenebene kann nur eine Verweisspalte enthalten. Diese Spalte muss denselben Datentyp haben wie die Spalte, für die die Einschränkung definiert ist.
    • Die REFERENCES-Klausel einer FOREIGN KEY-Einschränkung auf Tabellenebene muss ebenso viele Verweisspalten haben, wie sich Spalten in der Einschränkungsspaltenliste befinden. Der Datentyp jeder Verweisspalte muss mit dem Datentyp ihrer entsprechenden Spalte in der Spaltenliste identisch sein.
    • FOREIGN KEY-Einschränkungen können nur auf Spalten verweisen, die in der Tabelle, auf die verwiesen wird, zu PRIMARY KEY- oder UNIQUE-Einschränkungen gehören. FOREIGN KEY-Einschränkungen können nicht auf eindeutige Indizes verweisen.
  • Weitere Informationen zu Einschränkungen
    • Ein Index, der für eine Einschränkung erstellt wurde, kann nicht mit der DROP INDEX-Anweisung gelöscht werden. Die Einschränkung muss mit der ALTER TABLE DROP CONSTRAINT-Anweisung gelöscht werden.
    • Einschränkungsnamen müssen den Regeln für Bezeichner entsprechen, wobei der jeweilige Name außerdem nicht mit einem Nummernzeichen (#) beginnen darf. Fehlen das CONSTRAINT-Schlüsselwort und der Einschränkungsname (constraint_name), wird der Einschränkung ein systemgenerierter Name zugewiesen.
    • Wird eine Einschränkung in einer INSERT-, UPDATE- oder DELETE-Anweisung verletzt, wird die Anweisung beendet.

DEFAULT-Definitionen

Eine Spalte kann nur eine DEFAULT-Definition haben. Diese darf konstante Werte oder konstante Funktionen enthalten.

NULL-Zulässigkeitsregeln in einer Tabellendefinition

Die NULL-Zulässigkeit einer Spalte bestimmt, ob diese Spalte NULL als Datenwert enthalten darf. NULL ist nicht mit der Zahl Null (0) oder einer leeren Zeichenfolge identisch. NULL bedeutet, dass kein Eintrag vorgenommen oder explizit NULL angegeben wurde, und zeigt meist an, dass der Wert entweder unbekannt oder nicht anwendbar ist.

Beispiel

Die Beispiele weiter unten verdeutlichen folgende Aktionen:

  1. Erstellen einer zweispaltigen Tabelle mit einer Identitätsspalte als Primärschlüssel (PRIMARY KEY)
  2. Erstellen einer einspaltigen Tabelle mit einer PRIMARY KEY-Einschränkung
  3. Erstellen einer Tabelle, die eine Spalte hat, die auf eine Spalte in einer anderen Tabelle verweist
CREATE TABLE MyCustomers (CustID int IDENTITY (100,1) PRIMARY KEY, CompanyName nvarchar (50))

CREATE TABLE MyCustomers2 (CustID int CONSTRAINT pkCustId PRIMARY KEY)

CREATE TABLE MyOrders (OrderID int, CustID int REFERENCES MyCustomers(CustID))

Siehe auch

Hilfe und Information

Informationsquellen für SQL Server Compact Edition