Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Shrink increment auto number in SQL

Îåêßíçóå áðü ôï ìÝëïò sovilo. Τελευταία δημοσίευση από το μέλος Παναγιώτης Καναβός στις 09-02-2007, 16:12. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  09-02-2007, 13:08 24727

    Shrink increment auto number in SQL

    Έχω ένα πεδίο σε κάποιο πίνακα που είναι integer και παίρνει αυτόματα αύξοντα αριθμό. Αφού έχω κάνει 50 καταχωρήσεις, διαγράφω τις 10. Ο τελευταίος αριθμός του πεδίου τώρα είναι 40. Η επόμενη εγγραφή θα μου δώσει αυτόματα τον αριθμό 51. Πώς γίνετε να μου δώσει τον αριθμό 41;

    Έτρεξα το shrink database ελπίζοντας ότι θα το έκανε αλλά τίποτα.

    Χρησιμοποιώ SQL 2005 express edition και έχω τον server management studio express.
    Δημοσίευση στην κατηγορία: , , ,
  •  09-02-2007, 13:13 24728 σε απάντηση της 24727

    Απ: Shrink increment auto number in SQL

    To reseed το κάνεις με
    DBCC CHECKIDENT('Όνομα πίνακα', RESEED, 40)


    Δεν είναι όμως και πολύ καλή ιδέα να κάνεις κάτι τέτοιο. Δεν είναι φοβερό να έχει τρύπες το identity column, 32bit αριθμός είναι. Αν θέλεις ακόμα περισσότερες τιμές, κάνε το GUID.
    Νατάσα Μανουσοπούλου
    Δημοσίευση στην κατηγορία:
  •  09-02-2007, 13:16 24729 σε απάντηση της 24727

    Απ: Shrink increment auto number in SQL

    Φτου! Και έλεγα οτι θα προλάβω να το πω πρώτος :) :)

    Για περισσότερα γύρω από το DBCC CHECKIDENT μπορείς να πάς εδώ: http://msdn2.microsoft.com/en-us/library/ms176057.aspx

     


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
    Δημοσίευση στην κατηγορία:
  •  09-02-2007, 13:18 24731 σε απάντηση της 24728

    Απ: Shrink increment auto number in SQL

    Μήπως σκοπεύεις να χρησιμοποιήσεις το Ιdentity ως αύξοντα αριθμό;

    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  09-02-2007, 13:31 24734 σε απάντηση της 24731

    Απ: Shrink increment auto number in SQL

    τζιιιζζζζ. αν χρησιμοποιείς το πεδίο ως foreign key σε άλλους πίνακες κάνε αυτό που λέει η Νατάσα και μην πειράζεις αυτή την αρίθμηση!

    Είναι ok να την πειράξεις μόνο σε περίπτωση που π.χ. καθαρίζεις ολόκληρη την βάση σου ή όλους τους πίνακες που αναφέρονται σε αυτό το πεδίο.

    Και είναι περισσότερο δουλειά db administration παρά development. 


    Dimitris Papadimitriou
    Software Development Professional
    dotNETZone.gr News

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Διαβάστε επίσης τους όρους χρήσης.
  •  09-02-2007, 13:40 24740 σε απάντηση της 24731

    Απ: Shrink increment auto number in SQL

    Ουπς, ούτε τσιγάρο δεν πρόλαβα να κάνω τι ταχύτητα απαντήσεων ήταν αυτή;


    To Ιdentity ναι θα το χρησιμοποιήσω ως αύξοντα αριθμό αλλά ο πίνακα θα περιέχει περίπου 300 εγγραφές τον μήνα και στο τέλος του μήνα θα μεταφέρονται σε άλλον πίνακα (κάτι σαν κλείσιμο μήνα). Δεν με πειράζει αν υπάρχει ασυνέχεια αλλά όταν φτάσει γύρο στα 10000 θα ήθελα να κάνω ένα reset. Γι αυτό το ρωτά και για να μαθαίνω.

    Ευχαριστώ για τις απαντήσεις.

    Το DBCC CHECKIDENT('Όνομα πίνακα', RESEED, 40)

    Δούλεψε μια χαρά.
  •  09-02-2007, 13:49 24742 σε απάντηση της 24740

    Απ: Shrink increment auto number in SQL

    Όπως σου είπε και η Νατάσα, καλό θα είναι να "αφήσεις το key στην ησυχία του". Smile
    Για αύξοντα αριθμό, θα ήταν καλύτερα να χρησιμοποιήσεις κάποιο άλλο πεδίο, σε συνδυασμό με κάποιο trigger ίσως.

    Μην αφήνετε τα media να σας "ταΐζουν"!
  •  09-02-2007, 13:58 24746 σε απάντηση της 24727

    Απ: Shrink increment auto number in SQL

    Το πεδίο δεν θα είναι συνδεδεμένο με άλλο πίνακα θα χρησιμοποιώ αυτό το πεδίο μόνο για την χρήση update, delete κτλ. Το GUID είναι πράγματι καλό αλλά το autonumber με βολεύει πιο πολύ σε αυτή την περίπτωση.
  •  09-02-2007, 16:12 24751 σε απάντηση της 24746

    Απ: Shrink increment auto number in SQL

    Το ότι τόσος κόσμος αμέσως είπε ότι είναι κακή ιδέα να πειράζεις το autoincrement ή το κλειδί, είναι πολύ σημαντικό. Βασικά, είναι σατανική ιδέα. Το primary key δεν πρέπει ΠΟΤΕ να έχει business value. Αν θέλεις αύξοντα αριθμό, καλύτερα να τον φτιάξεις με κώδικα. Διαφορετικά θα αντιμετωπίσεις προβλήματα κάποια στιγμή εκεί που δεν το περιμένεις. Για σκέψου να τυπώσεις ένα report με τον αύξοντα αριθμό, να διαγράψεις εγγραφές και μετά να έρθει ένας πελάτης και να αναζητά την εγγραφή 41 ... και να μην υπάρχει πουθενά?
    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems