Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 7095|Svare: 0

Transaksjoner og lagrede prosedyrer som ligger til grunn for databasen

[Kopier lenke]
Publisert på 15.03.2019 22:45:21 | | | |


forord


Forrige gang skulle jeg organisere alt det grunnleggende innholdet i SQL, men jeg oppdaget at klokken begynte å gå før jeg visste ordet av det. Denne artikkelen fortsetter nedenfor.


Tekst


Først, la oss lage tabellene vi trenger



La oss kjøre en SQL-setning først


Denne koden trekker fra saldoen 0001 med 1000 og saldoen 0002 med 1000. Men vi la til begrensninger da vi bygde tabellen, og balansen må være større enn eller lik 10.

Resultatene er som følger:
                  

Så denne kodeutførelsesfeilen: "UPDATE-setningen er i konflikt med CHECK-begrensningen "CH_balance". Konflikten oppstår i databasen "DemoDb" med tabellen "dbo. Bank», kolonnen 'saldo'。” 。 Hvis én setning er feil, er det om den andre setningen har blitt utført med suksess.

Søkeresultatene er som følger:
                     

Vi vil se at en annen SQL-setning ikke har feil, men fortsatt ikke committer med suksess. Her er hva vi vil avsløre for deg.

#Transaksjoner

Hva er en transaksjon?
Strengt tatt, hvis en operasjon tilfredsstiller atomitet, persistens, isolasjon og konsistens, kalles operasjonen en transaksjon.
Send automatisk inn transaksjoner: i SQL Server. Som standard er hver SQL-setning en transaksjon.
Vis transaksjoner: Hver transaksjon starter eksplisitt med en BEGIN TRANSACTION-setning og avsluttes eksplisitt med en COMMIT- eller ROLLBACK-setning.



Demoen vi nettopp nevnte ovenfor endte med Rollback, så SQL-kjøringen trer ikke i kraft. Dataene ble ikke endret med suksess.

I faktisk utvikling og applikasjon setter vi vanligvis opp et lag med transaksjoner utenfor ikke-spørringssetningen for å sikre integritet og konsistens i dataene i henhold til faktiske behov. Enten gjør alt, eller så gjør du ikke alt.

Det er to systemvariabler som logger den feilaktige SQL-en. - @@rowcount returnerer antall berørte linjer, returnerer @@error feil koding

La oss bruke disse to systemvariablene for å avgjøre om det er en feil i SQL og utføre de to ovennevnte SQL-setningene.



#Lagrede prosedyrer

Det vil si: Kapsl inn en prosess som utføres (som kan være kompleks) i et navn, og bruk deretter det navnet til å utføre prosessen.



>
Parameterløse lagrede prosedyrer


>Lagrede prosedyrer med parametere



>Lagret prosedyre med returverdi



Prøv å fange i databasen



Det finnes også lagrede prosedyrer med standardparametere, som ble nevnt i forrige artikkel om paginering.


Epilog


Lagrede prosedyrer brukes mer i våre faktiske prosjekter, mange eldgamle systemer, forretningslogikk er skrevet i lagrede prosedyrer, og folkene bak vedlikeholder den, og de vil bare hamre hundens hode foran seg på minutter. Generelt skrives forretningslogikken i koden, men antall ganger dataene leses fra databasen, og forretningslogikken skrives i lagringsprosessen. I fjor ble en svært kompleks streng av forretningslogikk i selskapets prosjekt flyttet til lagringsprosessen, noe som økte hastigheten med dusinvis av ganger. Selvfølgelig behandles spesielle omstendigheter spesielt. Den spesifikke bruken avhenger av den faktiske situasjonen.






(Merk: Innholdet ovenfor er studienotatene for året, hvis det er noe upassende, vennligst rett det!) )









Foregående:Jeg føler for kundeservicesystemet til store selskaper
Neste:Video av Andale HCNP og HCIE
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com