Keine Wirkung bei "SET IDENTITY_INSERT ... ON"
-
Hallo zusammen,
ich habe mir in c++ ein Tool geschrieben welches Sql-Statements ausführt.
Wenn ich jetzt jedoch eine INSERT INTO in eine Tabelle mache die ein IDENTITY-Feld hat bekomm ich den Fehler:[Microsoft][ODBC SQL Server Driver][SQL Server]Ein expliziter Wert f³r die Ident
itõtsspalte kann in der Synclog-Tabelle nicht eingef³gt werden, wenn IDENTITY_IN
SERT auf OFF festgelegt ist., SQLSTATE=23000Nun habe ich das Statment SET IDENTITY_INSERT ... ON zuvor eingefügt und danach mein INSERT Statement abgesetz, jedoch blieb auch das ohne erfolg. Das SET IDENTITY_INSERT ... ON lieferte jedoch keinen Fehler.
Warum funktioniert es dann trotzdem nicht?
Habe ich andere Möglichkeiten das Identity-Feld zu setzen?Ich verwende eine MSDE Datenbank.
Hier ein Auszug aus meinem Codeif ( get_SQLHandle(&hstmt) ) { printf("Error getting SQLHandle \n"); err_passiert=1; rw=1; break; } if (SQLPrepare (hstmt,(UCHAR *)sqlcmd,SQL_NTS) != SQL_SUCCESS) { err_passiert=1; DBErr("SQLPrepare",hstmt); rw=1; break; } if ((rw=SQLExecute (hstmt) ) != SQL_SUCCESS) { err_passiert=1; DBErr("SQLExec",hstmt); //hier wird der Fehler ausgegeben //rw=1; V2.02.0 break; }
-
Ich schätze mal du darfst das Statement nicht direkt absetzen sondern musst IDENTITY_INSERT über SQLSetEnvAttr() irgendwie setzen.
Naja seis drum, was benötigt wird: Das Statement das du absetzt.
MfG SideWinder