Ich hab eine MS SQL Datenbank (SQL Server Express 2008) und steuer die aus Java mit dem 2005er SQL Server Java-Treiber an. (wird so empfholen, weil es noch keinen 2008er Treiber gibt) Java ist die Version 6 und ich entwickel unter Eclipse.
Klappt auch wunderbar.
Jetzt bastel ich grad so bißchen zum Üben von Java & der DB Anbindung - bin nen Java-Anfänger - nen kleinen Datenbank Editor - also nur für paar wichtige Sachen.
Nun wollt ich eine AutoIncrement Spalte in die Tabelle einfügen - gemacht getan - wird angelegt.
Jetzt schreibe ich eine Zeile in die Tabelle und es kommt die SQLException "Die 'Spalte1'-Identitätsspalte kann nicht aktualisiert werden."
Hier mal das Create:
Code: Alles auswählen
CREATE TABLE TestTabelle ( Spalte1 INT CONSTRAINT pk_Spalte1_1234489708313 PRIMARY KEY IDENTITY(1,1) NOT NULL, Spalte2 VARCHAR(256) NULL );Code: Alles auswählen
INSERT INTO TestTabelle (Spalte2) VALUES ('String18');In Java verwende ich vom Statement den Batch-Mechanismus, um die Zeilen erstmal zum Batch hinzu zu fügen und dann auszuführen. Einzeln oder zusammen - funktioniert beides nicht.
Beim m_Statement.executeBatch(); wird die SQLException geschmissen.
Wenn ich aber nun das Insert-Statement direkt im SQL Server Manager ausführe, dann funktioniert es.
Und jetzt kommt der Hammer - bevor ich den Code für das Erstellen des Insert-Statements geändert habe - also das war einfach nur ein anderer Algorithmus (die for-Schleifen sahen bißchen anders aus), wo dann das gleiche Statement bei rauskam (der alte Algorithmus hatte nur nen Problem, wenn die AutoIncrement-Spalte die letzte Spalte war) ... jedenfalls bin ich der Meinung nur das geändert zu haben ... na jedenfalls .... davor hatte es funktioniert.
Ich hab das schon auf Tabellen getestet, wo es vorher funktioniert hatte, auf neue Tabellen und in einer neuen Datenbank. Selbst nen Windows-Neustart half nichts.
.... und jetzt sitz ich hier schon paar Stunden und grübel vor mich hin, was ich denn da jetzt falsch/anders mache.
Jemand ne Idee, was ich noch ausprobieren könnte ?
MFG,
speedy

