In einer ähnlichen Ader wie meine previous question frage ich nochmal die SO Jungs nach deiner kollektiven Weisheit und Hilfe.Gib die ID der gerade hinzugefügten Zeile zurück.
In einer gespeicherten Prozedur und nachdem ich einige Prüfungen bestanden habe, muss ich eine neue Zeile einfügen und die neu erstellte ID zurückgeben. Die Überprüfung, ob eine Zeile existiert, funktioniert so, dass es das Bit ist, nach dem ich unentschlossen bin.
Die Tabelle enthält zwei wichtige Spalten: Die LocationID und die CaseID. Die CaseID wird automatisch inkrementiert. Wenn Sie also eine neue LocationId hinzufügen, wird sie automatisch erhöht.
Im Moment habe ich dies:
-- previous checks for existance of CaseID
IF @CaseID IS NULL
BEGIN
INSERT INTO
Cases(LocationID)
VALUES
(@LocationID)
-- what now?
END
Ich dachte an eine @CaseID = (SELECT blah)
Aussage immeadiately nach der Durchführung, aber ich habe mich gefragt, ob es einen besseren Weg?
Gibt es einen besseren Weg? Wie würdest du das machen?
Verwenden Sie SET @id = SCOPE_IDENTITY() und vergessen Sie über @@ IDENTITY. Wenn Sie Trigger in der Tabelle haben, die Identitätswerte generieren, gibt @@ IDENTITY diesen Identitätswert und nicht die ursprüngliche INSERTs-Identität zurück, aber SCOPE_IDENTITY() gibt die richtige Identität innerhalb des aktuellen Bereichs zurück. –