Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 7095|Απάντηση: 0

Συναλλαγές και αποθηκευμένες διαδικασίες στις οποίες βασίζεται η βάση δεδομένων

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 15/3/2019 10:45:21 μ.μ. | | | |


πρόλογος


Την τελευταία φορά, επρόκειτο να οργανώσω όλο το βασικό περιεχόμενο της SQL, αλλά διαπίστωσα ότι το ρολόι γύριζε πριν το καταλάβω. Αυτό το άρθρο συνεχίζεται παρακάτω.


Κείμενο


Αρχικά, ας δημιουργήσουμε τους πίνακες που χρειαζόμαστε



Ας εκτελέσουμε πρώτα μια δήλωση SQL


Αυτός ο κωδικός αφαιρεί το υπόλοιπο του 0001 επί 1000 και το υπόλοιπο του 0002 επί 1000. Αλλά προσθέσαμε περιορισμούς όταν φτιάξαμε τον πίνακα και το υπόλοιπο πρέπει να είναι μεγαλύτερο ή ίσο με 10.

Τα αποτελέσματα έχουν ως εξής:
                  

Έτσι, αυτό το σφάλμα εκτέλεσης κώδικα: "Η δήλωση UPDATE έρχεται σε διένεξη με τον περιορισμό CHECK "CH_balance". Η διένεξη παρουσιάζεται στη βάση δεδομένων "DemoDb" με τον πίνακα "dbo. Bank", στήλη 'υπόλοιπο'。” 。 Εάν μια δήλωση είναι λάθος, τότε εάν η άλλη δήλωση έχει εκτελεστεί με επιτυχία.

Τα αποτελέσματα του ερωτήματος είναι τα εξής:
                     

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

#Συναλλαγές

Τι είναι η Συναλλαγή;
Αυστηρά μιλώντας, εάν μια πράξη ικανοποιεί την ατομικότητα, την επιμονή, την απομόνωση και τη συνέπεια, τότε η πράξη ονομάζεται συναλλαγή.
Αυτόματη υποβολή συναλλαγών: στον SQL Server. Από προεπιλογή, κάθε πρόταση SQL είναι μια συναλλαγή.
Εμφάνιση συναλλαγών: Κάθε συναλλαγή ξεκινά ρητά με μια δήλωση BEGIN TRANSACTION και τελειώνει ρητά με μια δήλωση COMMIT ή ROLLBACK.



Το demo που μόλις αναφέραμε παραπάνω τελείωσε με Rollback, οπότε η εκτέλεση SQL δεν τίθεται σε ισχύ. Τα δεδομένα δεν τροποποιήθηκαν με επιτυχία.

Στην πραγματική ανάπτυξη και εφαρμογή, συνήθως δημιουργούμε ένα επίπεδο συναλλαγών εκτός της δήλωσης μη ερωτήματος για να διασφαλίσουμε την ακεραιότητα και τη συνέπεια των δεδομένων σύμφωνα με τις πραγματικές ανάγκες. Είτε κάντε τα όλα είτε μην τα κάνετε όλα.

Υπάρχουν δύο μεταβλητές συστήματος που καταγράφουν την SQL που είναι ελαττωματική. - @@rowcount επιστρέφει τον αριθμό των επηρεαζόμενων γραμμών @@error επιστρέφει λάθος κωδικοποίηση

Ας χρησιμοποιήσουμε αυτές τις δύο μεταβλητές συστήματος για να προσδιορίσουμε εάν υπάρχει σφάλμα στην SQL και να εκτελέσουμε τις δύο παραπάνω δηλώσεις SQL.



#Αποθηκευμένες διαδικασίες

Σημασία: Ενσωματώστε μια διαδικασία που εκτελείται (η οποία μπορεί να είναι πολύπλοκη) σε ένα όνομα και, στη συνέχεια, χρησιμοποιήστε αυτό το όνομα για να εκτελέσετε τη διαδικασία.



>
Αποθηκευμένες διαδικασίες χωρίς παραμέτρους


>Αποθηκευμένες διαδικασίες με παραμέτρους



>Αποθηκευμένη διαδικασία με επιστρεφόμενη τιμή



Δοκιμάστε το Catch στη βάση δεδομένων



Υπάρχουν επίσης αποθηκευμένες διαδικασίες με προεπιλεγμένες παραμέτρους, οι οποίες αναφέρθηκαν στο προηγούμενο άρθρο σχετικά με τη σελιδοποίηση.


Επίλογος


Οι αποθηκευμένες διαδικασίες χρησιμοποιούνται περισσότερο στα πραγματικά μας έργα, πολλά αρχαία συστήματα, η επιχειρηματική λογική είναι γραμμένη σε αποθηκευμένες διαδικασίες και οι άνθρωποι πίσω τη συντηρούν και θέλουν απλώς να σφυρηλατήσουν το κεφάλι του σκύλου μπροστά τους μέσα σε λίγα λεπτά. Σε γενικές γραμμές, η επιχειρηματική λογική γράφεται στον κώδικα, αλλά ο αριθμός των φορών που διαβάζονται τα δεδομένα από τη βάση δεδομένων και η επιχειρηματική λογική γράφεται στη διαδικασία αποθήκευσης. Πέρυσι, μια πολύ περίπλοκη σειρά επιχειρηματικής λογικής στο έργο της εταιρείας μεταφέρθηκε στη διαδικασία αποθήκευσης, η οποία αύξησε την ταχύτητα κατά δεκάδες φορές. Φυσικά, οι ειδικές περιστάσεις αντιμετωπίζονται ειδικά. Η συγκεκριμένη εφαρμογή εξαρτάται από το πραγματικό σενάριο.






(Σημείωση: Το παραπάνω περιεχόμενο είναι οι σημειώσεις μελέτης της χρονιάς, αν υπάρχει κάτι ακατάλληλο, διορθώστε το!) )









Προηγούμενος:Νιώθω για το σύστημα εξυπηρέτησης πελατών μεγάλων εταιρειών
Επόμενος:Βίντεο του Andale HCNP και του HCIE
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com