Αιτία για τη χρήση @@ ταυτότητας και όχι SCOPE_IDENTITY

ψήφοι
11

Σε μια βάση δεδομένων του SQL Server 2005, ένας από τους απομακρυσμένους προγραμματιστές μας απλά ελέγχεται σε μια αλλαγή σε μια αποθηκευμένη διαδικασία που άλλαξε μια «επιλέξτε SCOPE_IDENTITY» σε «επιλέξτε @@ ταυτότητα». Γνωρίζετε τυχόν λόγους για τους οποίους θέλετε να χρησιμοποιήσετε @@ ταυτότητα πάνω SCOPE_IDENTITY;

Δημοσιεύθηκε 09/12/2008 στις 18:11
πηγή χρήστη
Σε άλλες γλώσσες...                            


5 απαντήσεις

ψήφοι
18

@@IDENTITYθα επιστρέψει την τελευταία τιμή ταυτότητα που εκδίδεται από την τρέχουσα περίοδο. SCOPE_IDENTITY()επιστρέφει την τελευταία τιμή ταυτότητα κατά την τρέχουσα περίοδο και στο ίδιο πεδίο. Συνήθως είναι το ίδιο, αλλά υποθέτουν μια σκανδάλη ονομάζεται η οποία εισάγεται κάτι κάπου λίγο πριν από την τρέχουσα κατάσταση. @@IDENTITYθα επιστρέψει την τιμή ταυτότητας από την INSERT IGNORE δήλωση της σκανδάλης, δεν είναι η δήλωση ένθετο του μπλοκ. Είναι συνήθως ένα λάθος, εκτός αν ξέρει τι κάνει.

Απαντήθηκε 09/12/2008 στις 18:17
πηγή χρήστη

ψήφοι
12

Εδώ είναι μια σύνδεση που μπορεί να βοηθήσει στη διαφοροποίηση τους

μοιάζει με:

  • ΤΑΥΤΟΤΗΤΑ - τελευταία ταυτότητας για τη σύνδεση
  • SCOPE_IDENTITY - τελευταίο ταυτότητα που δημιουργήθηκε ρητά (εξαιρούνται ενεργοποιεί)
  • IDENT_CURRENT ( «όνομα πίνακα») - Τελευταία Ταυτότητα στον πίνακα, ανεξάρτητα από το πεδίο εφαρμογής ή τη σύνδεση.
Απαντήθηκε 09/12/2008 στις 18:20
πηγή χρήστη

ψήφοι
2

Δεν μπορώ να σκεφτώ κανένα, εκτός αν υπήρχε μια σκανδάλη, στη συνέχεια, εισάγεται μια σειρά (ή somesuch) και πραγματικά ήθελε την ταυτότητα της σκανδάλης, εισάγεται σειρά και όχι τη γραμμή που φυσικά αλλάξει.

Με άλλα λόγια, όχι, δεν είναι πραγματικά.

  • ΑΠΟΠΟΙΗΣΗ: Όχι T-SQL ειδικός :)
Απαντήθηκε 09/12/2008 στις 18:16
πηγή χρήστη

ψήφοι
1

Ίσως θα πρέπει να ρωτήσετε τον κύριο του έργου λογική τους πίσω από την αλλαγή αυτή.

Απαντήθηκε 09/12/2008 στις 21:48
πηγή χρήστη

ψήφοι
0

Αν ήθελε τη σκανδάλη χρήση θα μπορούσατε να πάρετε ένα άλλο σκανδάλη προστεθεί στο είναι ο μόνος λόγος που μπορώ να καταλήξει. Ακόμα και τότε είναι επικίνδυνο και θα μπορούσε να προστεθεί ένα άλλο σκανδάλη και πάλι θα πάρετε το λάθος ταυτότητα. Υποψιάζομαι ότι ο κύριος του έργου δεν ξέρει τι κάνει. Αλλά ειλικρινά το καλύτερο πράγμα που πρέπει να κάνουμε είναι να τον ρωτήσω γιατί έκανε την αλλαγή. Θα μπορούσατε να το αλλάξετε πίσω, αλλά ο κύριος του έργου πρέπει να ξέρετε για να μην το κάνουμε αυτό και πάλι αν χρειάζεται την ταυτότητα σκανδάλη, όπως δεν μπορεί να πιάσει την επόμενη φορά.

Απαντήθηκε 09/12/2008 στις 21:44
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more