Beim Abrufen von Primärschlüssel-Identitätsfeldwerten nach dem Einfügen verwenden Entwickler häufig verschiedene Methoden. Dieser Artikel befasst sich mit den Unterschieden und der Eignung der Methoden @@IDENTITY, SCOPE_IDENTITY() und OUTPUT.
@@IDENTITY Gibt den letzten IDENTITY-Wert zurück, der für eine beliebige Tabelle generiert wurde, unabhängig vom Bereich. Es ist nicht bereichssicher, was bedeutet, dass es möglicherweise Identitäten von ausgelösten Einfügungen oder anderen Anweisungen innerhalb der aktuellen Sitzung zurückgibt.
SCOPE_IDENTITY() verhält sich ähnlich, beschränkt jedoch den zurückgegebenen Wert auf die aktuelle Anweisung und Anschlussumfang. Somit werden nur Identitäten abgerufen, die während der ausführenden Anweisung generiert wurden.
Die OUTPUT-Klausel in der INSERT-Anweisung gibt eine Tabelle zurück, die die in die Tabelle eingefügten Daten enthält. Dazu gehören die generierten IDENTITY-Werte:
INSERT INTO #Testing (ID, somedate) OUTPUT INSERTED.* DEFAULT VALUES;
Die geeignete Methode hängt von den spezifischen Anforderungen ab:
Die OUTPUT-Methode ist nicht explizit bereichssicher. Es ruft Identitäten ab, die im aktuellen Bereich generiert wurden. Wenn diese Identitäten jedoch anderen Tabellen zugewiesen wurden, werden sie möglicherweise auch zurückgegeben. Für strikte Bereichssicherheit verwenden Sie SCOPE_IDENTITY().
Das obige ist der detaillierte Inhalt vonWie wähle ich zwischen @@IDENTITY, SCOPE_IDENTITY() und OUTPUT zum Abrufen von Primärschlüssel-Identitätswerten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!