Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 7095|Svar: 0

Transaktioner och lagrade procedurer som ligger till grund för databasen

[Kopiera länk]
Publicerad på 2019-03-15 22:45:21 | | | |


förord


Senast skulle jag organisera allt grundläggande innehåll i SQL, men jag märkte att klockan började gå innan jag visste ordet av. Den här artikeln fortsätter nedan.


SMS


Först, låt oss skapa de tabeller vi behöver



Låt oss köra en SQL-sats först


Denna kod drar av balansen 0001 med 1000 och balansen 0002 med 1000. Men vi lade till begränsningar när vi byggde bordet, och balansen måste vara större än eller lika med 10.

Resultaten är följande:
                  

Så detta kodexekveringsfel: "UPDATE-satsen strider mot CHECK-begränsningen "CH_balance". Konflikten uppstår i databasen "DemoDb" med tabellen "dbo. Bank", kolumnen 'saldo'。” 。 Om en sats är fel, så är det om den andra satsen har utförts framgångsrikt.

Sökresultaten är följande:
                     

Vi kommer att se att en annan SQL-sats inte har några fel, men ändå inte committar framgångsrikt. Här är vad vi kommer att avslöja för dig.

#Transaktioner

Vad är transaktion?
Strikt taget, om en operation uppfyller atomicitet, persistens, isolering och konsistens, kallas operationen en transaktion.
Skicka automatiskt in transaktioner: i SQL Server. Som standard är varje SQL-sats en transaktion.
Visa transaktioner: Varje transaktion börjar explicit med en BEGIN TRANSACTION-sats och slutar explicit med en COMMIT- eller ROLLBACK-sats.



Demon vi just nämnde ovan slutade med Rollback, så SQL-exekveringen träder inte i kraft. Datan modifierades inte framgångsrikt.

I faktisk utveckling och applikation sätter vi vanligtvis upp ett lager av transaktioner utanför icke-frågeformuleringen för att säkerställa datans integritet och konsekvens enligt faktiska behov. Antingen gör du allt eller så gör du inte allt.

Det finns två systemvariabler som loggar den felaktiga SQL. - @@rowcount returnerar antalet drabbade linjer @@error returnerar fel kodning

Låt oss använda dessa två systemvariabler för att avgöra om det finns ett fel i SQL och köra de två ovan nämnda SQL-satserna.



#Lagrade procedurer

Betydelse: Kapsla in en process som utförs (som kan vara komplex) i ett namn, och använd sedan det namnet för att utföra processen.



>
Parameterfria lagrade procedurer


>Lagrade procedurer med parametrar



>Lagrad procedur med returvärde



försök fånga i databasen



Det finns också lagrade procedurer med standardparametrar, vilka nämndes i föregående artikel om paginering.


Epilog


Lagrade procedurer används mer i våra faktiska projekt, många gamla system, affärslogik skrivs i lagrade procedurer, och människorna bakom underhåller dem, och de vill helt enkelt slå hundens huvud framför sig på några minuter. Generellt sett skrivs affärslogik i koden, men antalet gånger data läses från databasen och affärslogiken skrivs i lagringsprocessen. Förra året flyttades en mycket komplex sträng av affärslogik i företagets projekt till lagringsprocessen, vilket ökade hastigheten dussintals gånger. Självklart behandlas särskilda omständigheter särskilt. Den specifika tillämpningen beror på det faktiska scenariot.






(Obs: Ovanstående innehåll är årets studieanteckningar, om något är olämpligt, vänligen rätta det!) )









Föregående:Jag känner för kundservicesystemet hos stora företag
Nästa:Video av Andale HCNP och HCIE
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com