Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - Auto_Increment


pepe-je - So 11.04.10 15:14
Titel: Auto_Increment
Hallo,
bei der Bildung einer neuen Tabelle soll die Id mit Auto_Increment versehen sein. Ich habe versucht, dies mit folgender Zeile zu erreichen

String strComm = "CREATE TABLE Staedte (Id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, ...)";
cmd = new SqlCommand(cmdStr, conn);

Der Befehl CREATE TABLE ... wird dann mit
cmd.ExecuteNonQuery();
an die Datenbank übergeben

Leider gibt es die Meldung eines syntaktischen Fehlers für AUTO_INCREMENT
Kann mir jemand helfen? Danke

Gruß, pepe-je


Raorkon - So 11.04.10 15:39

mhh versuchs mal so:


Quelltext
1:
CREATE TABLE [dbo].[BlaTable]([ID] [int] IDENTITY(1,1) NOT NULL,.......)                    


JüTho - So 11.04.10 16:42

Hallo,

die DBMS sind bei der Struktur der Befehle sehr empfindlich. Vermutlich muss das Auto_increment vor dem PrimaryKey stehen.

Gruß Jürgen


pepe-je - So 11.04.10 17:40

--Leider bringt die Vertauschung von PRIMARY KEY und AUTO_INCREMENT keine Veränderung. Wieder kommt die Meldung: "Syntaxfehler in Umgebung von AUTO_INCREMENT.

Wird AUTO_INCREMENT durch IDENTITY (1,1) ersetzt, wird die Tabelle richtig angelegt.
Aber erfolgt denn nun eine automatische Erhöhung der Id?


Raorkon - So 11.04.10 17:43

ja macht er, du nutzt also wahrscheinlich MS SQL 2005/2008


pepe-je - So 11.04.10 18:25

Euch beiden vielen Dank für Eure Hilfe
Viele Grüße. Peter


Christoph1972 - So 11.04.10 21:09

By the way, bei mir sieht das so aus: ID INT PRIMARY KEY NOT NULL IDENTITY

Auto Increment scheint dann default zu sein......SQL-Server 2005