AUTOINCREMENT von einem neu eingefügten Datensatz erfahren
-
Hi,
ich möchte einen Eintrag in einer Datenbank kopieren (bis auf das ID-Feld, da AUTOINCREMENT) um den neuen Eintrag dann als FK in einer anderen Tabelle zu benutzen. Aber wie komme ich jetzt an die ID des neuen Eintrags ran?
Die einzige möglichkeit für mich ist, ich suche nach meinem Eintrag mit allen Feldern und sortiere nach der ID, die größte müsste ja die neuste sein. Aber geht das nicht auch eleganter?
-
da ich aus früheren posting denke, du machst mssql, hier eine idee:
http://blog.sqlauthority.com/2007/03/25/sql-server-identity-vs-scope_identity-vs-ident_current-retrieve-last-inserted-identity-of-record/
-
Ja, da liegst du richtig
Jetzt stelle ich aber fest, sollte mir eine anderer dazwischen Funkten und auch einen Datensatz einfügen, könnte ich auch seine ID zurück bekommen, oder? Egal, ob nach deiner Idee oder nach meiner Sortierung...
-
kenne mich mit mssql nicht sonderlich aus.
ich würde hier nachlesen:
http://msdn.microsoft.com/de-de/library/ms187342.aspx
und ein wenig "transaction" mitbedenken (glaub, die bauen das in ein paar möglichkeiten dort mit ein, nur überflogen)
-
Es gibt mehrere Möglichkeiten bzw. Arten.
Du kannst Dir die letzte ID der aktuellen Sitzung geben lassen.
Die letzte ID der Tabelle egal wer eingefügt hat
Die letzte ID des Server egal wer eingefügt hat.Schau dir mal TSQL an und suche nach t sql lastinsertid
Findet man alles bei Google
-
Ja, die drei Dinge hab ich dank elise auch bereits gefunden. Also wenn ich die der aktuellen Sitzung verwende, kann mir kein anderer daziwschen funken?
-
Unix-Tom schrieb:
Es gibt mehrere Möglichkeiten bzw. Arten.
Du kannst Dir die letzte ID der aktuellen Sitzung geben lassen.
Die letzte ID der Tabelle egal wer eingefügt hat
Die letzte ID des Server egal wer eingefügt hat.Schau dir mal TSQL an und suche nach t sql lastinsertid
Findet man alles bei Google
Unix-Tom, es ist unsinn, den gleichen link zu posten wie ich
-
elise schrieb:
Unix-Tom schrieb:
Es gibt mehrere Möglichkeiten bzw. Arten.
Du kannst Dir die letzte ID der aktuellen Sitzung geben lassen.
Die letzte ID der Tabelle egal wer eingefügt hat
Die letzte ID des Server egal wer eingefügt hat.Schau dir mal TSQL an und suche nach t sql lastinsertid
Findet man alles bei Google
Unix-Tom, es ist unsinn, den gleichen link zu posten wie ich
Mag sein aber es ist nicht der gleiche.
Ps.: Habe unter Deinen Link nicht geschaut was da steht.
Habe ihn vollkommen ignoriert.@TS.: wenn Du den der aktuellen Sitzung verwendest dann kann Dir niemand dazwischen funken. Du musst es aber auch auf der gleichen Verbindung absetzen.
Also nicht "Connect Close", "Connect", lastidDa wird aber einen Tolles RDBMS haben: Verwende eine Procedure.