? Skrive effektiv og vellykket SQL ( Structured Query Language ) sekvenser kan være like mye en kunst som en vitenskap . Det er visse strukturer og terminologi som må brukes for å produsere resultatet programmereren vil. I SQL Server , er en transaksjon en spesifikk og isolert enhet av arbeid. Hver enhet har til å fullføre før en annen enhet kan begynne, og hver transaksjon må få beskjed om å fullføre. Dette gjøres med " Commit Transaction "-kommandoen , som gjør flere ting for utbygger . Avslutter en transaksjon
servere, i løpet av beregning av en bestemt transaksjon , kan utføre mange forskjellige oppgaver. Ideelt sett vil utbygger skrive en komplett transaksjon som både gir ønsket resultat, og gjør det på en logisk rekkefølge . Ved utstedelse av Commit Transaction kommandoen , er programmerer fortelle serveren at alle beregningene knyttet til denne bestemte transaksjonen er gjennomført og til permanent skrive resultatene til databasen.
Frigjør ressurser
En datamaskin vil bare behandle kjørbar kode i den rekkefølgen det står skrevet . Dette betyr at før en transaksjon er lukket, vil ressursene forpliktet til å utføre denne transaksjonen ikke gjøres tilgjengelig for andre transaksjoner eller oppgaver . Forplikte Transaction , hvis parret riktig med en tilsvarende Begynn Transaction kommandoen , vil frigjøre disse ressursene og la serveren til å gå videre med andre beregninger .
Holder styr på åpne transaksjoner
Hver transaksjon må initieres av Begin Transaction kommando. Serveren holder telling av hver transaksjon ved trinnvis å legge en til en løpende oversikt over alle åpne transaksjoner . Hvis det er andre åpne transaksjoner , vil en Commit Transaction kommando redusere som teller ved en, men dette betyr ikke nødvendigvis returnere den til null. En opptelling større enn null betyr at alle de åpne transaksjonene ikke er fullført . Dette betyr at postene er ennå ikke permanent , og ressursene har ikke blitt utgitt.
Tillater kompliserte beregninger
Commit Transaction kommandoen også kontrollerer " nestede " transaksjoner . Programmereren starter en transaksjon , og deretter kan skrive mange komplekse transaksjoner innsiden av det. Hver nestet transaksjon må ha en commit -kommando , og den opprinnelige transaksjonen må da være stengt for å gjøre alle beregningene permanent . Forplikte Transaction også gir utvikleren en liten grad av feil fangst. Hvis teller er null når commit -kommandoen er gitt, oppstår det en feil fordi det er ingen samkjøre begynne kommando.