Ich versuche herauszufinden, was hier ein Problem so lange sein könnte. Ich habe eine gespeicherte Prozedur, in der ich einen INSERT habe. Bei zahlreichen Einträgen wurde die Gültigkeitsdauer scope_identity dieses Insert zurückgegeben. Aber für wenige gibt es nur null zurück und daher schlägt die nächste Einfügung mit einem Fehler fehl (da dieser Wert in der anderen Tabelle nicht null sein kann).SCOPE_IDENTITY() gibt null nur für wenige Datensätze zurück
In den Protokollen konnte ich mehrere Anfragen für diese gespeicherte Prozedur zur gleichen Zeit (1 ms) sehen.
Ich denke, die Ids erzeugt werden, wie ich eine Lücke in den einzigartigen Identitäten in der Tabelle zur gleichen Zeit wie die mehrere Anfragen kamen zu sehen.
, dass jedes Problem mit dem scope_identity werden kann()?
Ich bezweifle Gleichzeitigkeit ist ein Problem. 'SCOPE_IDENTITY()' bleibt 'NULL', wenn keine Zeile eingefügt wurde, möglicherweise aufgrund eines Fehlers. –
Rechts. Meine 2. Einfügeanweisung gibt einen Fehler aus, den ich in meinen Protokollen habe. Aber der erste Insert hat nie einen Fehler verursacht. Aber die scope_identity ist null. vielleicht muss ich die insert-Anweisung genauer betrachten. – Shrav
Scope_identity speichert die ID der letzten Insert-Anweisung im aktuellen Bereich. Die letzte Insert-Anweisung war nicht erfolgreich. Ermitteln Sie nach jeder Einfügung die Bereichsidentität, wenn Sie sie benötigen. –