@@identityfunkcja zwraca ostatnią tożsamość utworzoną w tej samej sesji.scope_identity()funkcja zwraca ostatnią tożsamość utworzoną w tej samej sesji i w tym samym zakresie.ident_current(name)zwraca ostatnią tożsamość utworzoną dla określonej tabeli lub widoku w dowolnej sesji.identity()funkcja nie jest używana do uzyskania tożsamości, służy do tworzenia tożsamości wselect...intozapytanie.
Sesja to połączenie z bazą danych. Zakresem jest bieżące zapytanie lub bieżąca procedura składowana.
Sytuacja, w której scope_identity() i @@identity funkcje różnią się, jeśli masz wyzwalacz na stole. Jeśli masz zapytanie, które wstawia rekord, powodując, że wyzwalacz wstawia gdzieś inny rekord, scope_identity() funkcja zwróci tożsamość utworzoną przez zapytanie, natomiast @@identity funkcja zwróci tożsamość utworzoną przez wyzwalacz.
Więc normalnie użyjesz scope_identity() funkcja.