Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 7095|Antwort: 0

Transaktionen und gespeicherte Prozeduren, die der Datenbank zugrunde liegen

[Link kopieren]
Veröffentlicht am 15.03.2019 22:45:21 | | | |


Vorwort


Beim letzten Mal wollte ich alle grundlegenden SQL-Inhalte organisieren, aber ich stellte fest, dass die Uhr sich drehte, bevor ich mich versah. Dieser Artikel wird unten fortgesetzt.


Text


Zuerst erstellen wir die Tabellen, die wir brauchen



Führen wir zuerst eine SQL-Anweisung aus


Dieser Code zieht den Saldo von 0001 durch 1000 und den Saldo von 0002 durch 1000 ab. Aber wir haben beim Erstellen der Tabelle Einschränkungen hinzugefügt, und das Saldo muss größer als oder gleich 10 sein.

Die Ergebnisse sind wie folgt:
                  

Also dieser Code-Ausführungsfehler: "Die UPDATE-Anweisung steht im Widerspruch zur CHECK-Einschränkung "CH_balance". Der Konflikt tritt in der Datenbank "DemoDb" mit der Tabelle "dbo" auf. Bank", Spalte 'Saldo'。” 。 Wenn eine Anweisung ein Fehler ist, dann wird die andere Anweisung erfolgreich ausgeführt.

Die Abfrageergebnisse sind wie folgt:
                     

Wir werden sehen, dass eine andere SQL-Anweisung keine Fehler hat, aber dennoch nicht erfolgreich committiert. Hier ist, was wir Ihnen enthüllen werden.

#Transaktionen

Was ist eine Transaktion?
Streng genommen, wenn eine Operation Atomität, Persistenz, Isolation und Konsistenz erfüllt, wird die Operation als Transaktion bezeichnet.
Transaktionen automatisch einreichen: in SQL Server. Standardmäßig ist jede SQL-Anweisung eine Transaktion.
Show Transactions: Jede Transaktion beginnt explizit mit einer BEGIN TRANSACTION-Anweisung und endet explizit mit einer COMMIT- oder ROLLBACK-Anweisung.



Die oben erwähnte Demo endete mit Rollback, sodass die SQL-Ausführung nicht wirkt. Die Daten wurden nicht erfolgreich verändert.

In der eigentlichen Entwicklung und Anwendung richten wir in der Regel eine Transaktionsschicht außerhalb der Nicht-Abfrageanweisung ein, um die Integrität und Konsistenz der Daten entsprechend den tatsächlichen Bedürfnissen zu gewährleisten. Entweder mach alles oder nicht alles.

Es gibt zwei Systemvariablen, die das fehlerhafte SQL protokollieren. - @@rowcount die Anzahl der betroffenen Leitungen zurückgibt, @@error die falsche Codierung zurückgibt

Verwenden wir diese beiden Systemvariablen, um festzustellen, ob ein Fehler in SQL vorliegt, und führen die oben genannten beiden SQL-Anweisungen aus.



#Gespeicherte Verfahren

Das bedeutet: Kapseln Sie einen durchgeführten Prozess (der komplex sein kann) in einen Namen und verwenden Sie diesen Namen, um den Prozess durchzuführen.



>
Parameterlose gespeicherte Prozeduren


>Gespeicherte Prozeduren mit Parametern



>Gespeicherte Prozedur mit Rückgabewert



Versuchen Sie Catch in der Datenbank



Es gibt auch gespeicherte Prozeduren mit Standardparametern, die im vorherigen Artikel über Paginierung erwähnt wurden.


Epilog


Gespeicherte Verfahren werden in unseren eigentlichen Projekten häufiger verwendet, viele uralte Systeme, Geschäftslogik ist in gespeicherten Verfahren geschrieben, und die dahinterstehenden Leute warten sie, und sie wollen einfach nur den Kopf des Hundes in wenigen Minuten einschlagen. Im Allgemeinen wird die Geschäftslogik im Code geschrieben, aber die Anzahl der Lesungen der Daten aus der Datenbank, und die Geschäftslogik erfolgt im Speicherprozess. Im vergangenen Jahr wurde eine sehr komplexe Geschäftslogik im Projekt des Unternehmens in den Speicherprozess übertragen, was die Geschwindigkeit dutzende Male erhöhte. Natürlich werden besondere Umstände besonders behandelt. Die konkrete Anwendung hängt vom tatsächlichen Szenario ab.






(Hinweis: Der obige Inhalt sind die Lernnotizen des Jahres, falls etwas unangemessen ist, korrigiert es bitte!) )









Vorhergehend:Ich habe ein Verständnis für das Kundenservicesystem großer Unternehmen
Nächster:Video von Andale HCNP und HCIE
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com