|
|
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 UnternehmenNächster:Video von Andale HCNP und HCIE
|