Moin,
ich habe eine Access-Datenbank in eine SQLEXPRESS Datenbank verschoben um einen besseren Zugriff durch mehrere User gewährleisten zu können. Nun meine kleine Frage:
Wenn mehrere Benutzer (Frontend noch in Access) auf die Datenbank schreibend und lesend zugreifen können und ich einen Datensatz via DAO einfüge, wie kann ich dann direkt den Primarykey diese Datensatzes erfahren (PK ist autoinc) wenn ich diesen für relationen in anderen Tabellen (dort als FK) benutzen möchte? Gibt es da eine Möglichkeit oder wäre es sinnvoller das Frontend neu zu implementieren?
Viele Grüße
Ernst Jürgen
Man muß nichts wissen,
man muß nur wissen wer es wissen könnte
oder wo es steht😉
du solltest die letzte Identity über "SELECT @@IDENTITY" bekommen können. Um sicherzustellen, daß das wirklich "deine" Id ist, sollten der Insert und die Id-Abfrage in derselben Transaktion ablaufen.
Das Insert Statement und die Abfrage nach der Id MÜSSEN in der selben Transaktion ablaufen. Sonst klappt das ganze nicht.
Ab dem SQL2005 gibt es das OUTPUT Schlüsselwort bei INSERT Anweisungen. Das ist wesentlich eleganter als ein anschließendes SELECT @@IDENTITY.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
huhu,
bitte aufpassen:
du solltest die letzte Identity über "SELECT @@IDENTITY" bekommen können. Um sicherzustellen, daß das wirklich "deine" Id ist, sollten der Insert und die Id-Abfrage in derselben Transaktion ablaufen.
***@@Identity **liefert die letzte ID in der Session (kann also auch z.B. die ID aus einer anderen Tabelle sein, nur weil ein Trigger etwas eingefügt hat). ***SCOPE_IDENTITY() **liefert die letzte eingefügte ID bezogen auf Session und Scope. (Also nicht das Triggerverhalten von @@Identity) *IDENT_CURRENT(’tablename’) liefert die letzte eingefügte ID zu einer gegebennen Tabelle - unabhängig von Session und Scope.
😃
Xynratron
Herr, schmeiss Hirn vom Himmel - Autsch!
Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.