inleiding
De vorige keer wilde ik alle basisinhoud van SQL organiseren, maar ik merkte dat de klok al begon te draaien voordat ik het wist. Dit artikel gaat hieronder verder.
Sms
Laten we eerst de tabellen maken die we nodig hebben
Laten we eerst een SQL-instructie uitvoeren
Deze code trekt het saldo van 0001 door 1000 en het saldo van 0002 af door 1000. Maar we hebben beperkingen toegevoegd toen we de tafel bouwden, en het saldo moet groter zijn dan of gelijk aan 10.
De resultaten zijn als volgt:
Dus deze code-uitvoeringsfout: "De UPDATE-instructie conflicteert met de CHECK-beperking "CH_balance". Het conflict vindt plaats in de database "DemoDb" met de tabel "dbo. Bank", kolom 'saldo'。” 。 Als één statement fout is, dan is de andere statement dan succesvol uitgevoerd.
De zoekresultaten zijn als volgt:
We zullen zien dat een andere SQL-instructie geen fouten bevat, maar nog steeds niet succesvol committ. Dit is wat we u zullen onthullen.
#Transacties
Wat is een transactie? Strikt genomen, als een bewerking voldoet aan atomiciteit, persistentie, isolatie en consistentie, dan wordt de operatie een transactie genoemd. Automatisch transacties indienen: in SQL Server. Standaard is elke SQL-instructie een transactie. Transacties tonen: Elke transactie begint expliciet met een BEGIN TRANSACTION-instructie en eindigt expliciet met een COMMIT- of ROLLBACK-instructie.
De demo die we hierboven noemden eindigde met Rollback, dus de SQL-uitvoering treedt niet in werking. De gegevens werden niet succesvol aangepast.
In de daadwerkelijke ontwikkeling en applicatie stellen we meestal een laag transacties op buiten de non-query-verklaring om de integriteit en consistentie van de data volgens de werkelijke behoeften te waarborgen. Doe het allemaal, of doe het niet allemaal.
Er zijn twee systeemvariabelen die de foutieve SQL registreren. - @@rowcount het aantal getroffen lijnen teruggeeft, @@error de verkeerde codering teruggeeft
Laten we deze twee systeemvariabelen gebruiken om te bepalen of er een fout in SQL is en de bovenstaande twee SQL-instructies uitvoeren.
#Opgeslagen procedures
Betekenis: Kapsel een proces dat wordt uitgevoerd (dat complex kan zijn) in een naam, en gebruik die naam vervolgens om het proces uit te voeren.
> Parameterloze opgeslagen procedures
>Opgeslagen procedures met parameters
>Opgeslagen procedure met retourwaarde
try catch in de database
Er zijn ook opgeslagen procedures met standaardparameters, die in het vorige artikel over paginatisering werden genoemd.
Epiloog
Opgeslagen procedures worden vaker gebruikt in onze daadwerkelijke projecten, veel oude systemen, bedrijfslogica wordt geschreven in opgeslagen procedures, en de mensen erachter onderhouden het, en ze willen simpelweg het hoofd van de hond voor zich in enkele minuten inslaan. Over het algemeen wordt de bedrijfslogica in de code geschreven, maar het aantal keren dat de data uit de database wordt gelezen, en de bedrijfslogica wordt geschreven in het opslagproces. Vorig jaar werd een zeer complexe reeks bedrijfslogica in het project van het bedrijf verplaatst naar het opslagproces, wat de snelheid tientallen keren vergrootte. Natuurlijk worden speciale omstandigheden speciaal behandeld. De specifieke toepassing hangt af van het daadwerkelijke scenario.
(Opmerking: bovenstaande inhoud is de studienotities van het jaar, als er iets ongepast is, corrigeer dit dan alstublieft!) )
|