En markør er en SQL- database programmering struktur som de fleste database programmerere forsøker å unngå når det er mulig . En SQL-database er bygget for å behandle grupper av poster, eller " datasett ", men en markør er designet for å håndtere bare én post om gangen --- og de kan også låse alle andre programmer ut av tabellene de refererer til de er endelig ferdig. Skifte pekere med ulike strukturer er nesten alltid en god SQL programmering praksis . Etterligne en markør Med en Mens Loop
A While løkke vises ligner på en markør struktur , men ikke bærer de samme låsing straffer. Derfor kan det ta nesten like lang tid å behandle, men det låser ikke andre programmer ut av tabellene er det ved hjelp
Et eksempel på et Mens struktur : .
Mens tilstand (programmet vil løkken så lenge betingelsen er sann )
Begynn
kode ( denne koden vil kjøre en gang på hver passering gjennom Mens loop)
End
Definer en funksjon
SQL har brukerdefinerte funksjoner . Snarere enn å samle alle resultatene og deretter analysere dem en om gangen med en markør , kan brukerdefinert funksjon brukes som en del av Select uttalelse.
Å plassere en brukerdefinert funksjon i en Select spørring , kan du bruke denne strukturen : en
Velg Fornavn, etternavn , dbo.user_function ( account_balance ) som AverageBalance
Bygg en Common Table Expression
< p > Tenk på en Common Table Expression som en trimmet opp midlertidige tabellen . Du kan bygge en Common Table Expression ved hjelp av en rekke standard spørsmål og deretter arbeide med dem som om de var standard SQL- tabeller
Strukturen av en Common Table Expression er : .
P Med my_CTE (
Standard utvalgsspørringer gå her
) ;
Etter my_CTE er definert, kan flere spørsmål referere det som om det var en tabell
. , Legg en identitet kolonne
en av de vanligste grunnene til å bruke en markør er å bla gjennom en tabell som ikke har en identitet kolonne --- det vil si en unik identifikator for hver rad i tabellen . Uten at identifikator , er det svært vanskelig å arbeide med dataene med standard Select spørringer. Endre tabellen for å legge en Primary Key kolonne løser det problemet, og skal eliminere behovet for en markør for å undersøke enkelte posten .