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 » Transact-SQL-kompatible Datenbanken

 

Die spezielle IDENTITY-Spalte

In der IDENTITY-Spalte werden aufeinander folgende Nummern gespeichert, wie zum Beispiel Rechnungsnummern oder Mitarbeiternummern, die automatisch erstellt werden. Der Wert der IDENTITY-Spalte identifiziert jede Zeile in einer Tabelle eindeutig.

In Adaptive Server Enterprise kann jede Tabelle einer Datenbank eine IDENTITY-Spalte besitzen. Der Datentyp muss nummerisch sein und null Dezimalstellen haben, und die IDENTITY-Spalte sollte NULL nicht zulassen.

In SQL Anywhere ist die IDENTITY-Spalte eine Spalten-Standardeinstellung. Werte, die nicht Teil der Sequenz sind, können explizit mit der INSERT-Anweisung in die Spalte eingefügt werden. Adaptive Server Enterprise lässt Einfügungen mit INSERT in die Identity-Spalten nicht zu, es sei denn, die Option identity_insert ist auf ON eingestellt. In SQL Anywhere müssen Sie die NOT NULL-Eigenschaft festlegen und sicherstellen, dass nur eine Spalte eine IDENTITY-Spalte ist. SQL Anywhere lässt die Verwendung eines beliebigen nummerischen Datentyps für die IDENTITY-Spalte zu. Für eine bessere Performance wird die Verwendung von integer-Datentypen empfohlen.

In SQL Anywhere ist die IDENTITY-Spalte identisch mit der Standardeinstellung AUTOINCREMENT für eine Spalte.

Um eine IDENTITY-Spalte zu erstellen, verwenden Sie die folgende CREATE TABLE-Syntax, wobei n groß genug sein muss, um den Wert der maximalen Anzahl an Zeilen zu halten, die in die Tabelle eingefügt werden kann:

CREATE TABLE table-name (
   ...
   column-name numeric(n,0) IDENTITY NOT NULL,
   ...
)

Abrufen von IDENTITY-Spaltenwerten mit @@identity