DatorerDatabaser

SQL lagrade procedurer: skapa och använda

SQL lagrade procedurer är körbara mjukvarumodul som kan lagras i databasen i form av olika föremål. Med andra ord är det ett föremål som innehåller SQL-sats. Dessa lagrade procedurer kan utföras i klientprogrammet för att få ett bra resultat. Dessutom är sådana anläggningar kallas ofta från andra skript eller ens från någon annan avdelning.

introduktion

Många tror att de liknar förfarandena i de olika hög nivå programmeringsspråk (respektive, med undantag för MS SQL). Kanske detta är sant. De har liknande parametrar, de kan utfärda ett liknande värde. Dessutom i vissa fall, de kommer i kontakt. Till exempel är de kombineras med databaser av DDL och DML data samt användarfunktioner (kod namn - UDF).

Egentligen lagrade SQL-procedurer har ett brett utbud av fördelar som skiljer dem bland sådana processer. Säkerhet, variation programmering produktivitet - allt detta lockar användare som arbetar med databaser, mer och mer. Toppen av populariteten kom förfaranden för åren 2005-2010, när jag fick programmet från "Microsoft" under namnet «SQL Server Management Studio». Med dess hjälp har arbetet med databaser blivit mycket lättare, mer praktiskt och mer bekvämt. År efter år, denna metod för att överföra information vunnit popularitet i programmeringsmiljö. Idag, MS SQL Server är helt vanligt program, som för användarna att "kommunicera" med databaser, stod i paritet med "Excel".

När du ringer förfarandet är det omedelbart behandlas av servern utan onödiga processer och användarinblandning. Du kan sedan utföra någon åtgärd med information: radering, utförande, förändring. Över allt detta är i DDL-operatören, som på egen hand utföra komplexa åtgärder på dessa objekt. Och det händer mycket snabbt, och servern faktiskt inte lastas. Denna hastighet och produktivitet gör att du snabbt överföra stora mängder information från användaren till servern och vice versa.

För att genomföra detta arbete med information, det finns flera programmeringsspråk teknik. Hit hör till exempel PL / SQL från databasledningssystemet Oracle, psql i Interbase och Firebird system, liksom den klassiska "maykrosoftovskih» Transact-SQL. Alla av dem är utformade för att skapa och köra lagrade procedurer, så att du kan använda sina egna algoritmer på en stor databas hanterare. Det är nödvändigt och att se till att de som utför hantering av sådan information kan skydda alla föremål från obehöriga och därför skapande, ändring eller radering av vissa uppgifter.

produktivitet

Dessa databasobjekt kan programmeras på olika sätt. Detta gör det möjligt för användare att välja vilken typ av process som skulle vara mest lämpliga, vilket sparar tid och energi. Dessutom är själva förfarandet bearbetas och därmed undvika enorm tid spenderas på kommunikation mellan servern och användaren. Modulen kan omprogrammeras och ändras i rätt riktning i absolut helst. Särskilt värt att notera den hastighet med vilken lanseringen av SQL lagrad procedur inträffar: processen är snabbare andra liknar det, vilket gör det till en bekväm och mångsidig.

säkerhet

Denna typ av informationsbehandling skiljer sig från liknande processer i att det ger ökad säkerhet. Detta säkerställs genom det faktum att andra användare från att komma åt procedurer kan elimineras helt. Detta gör det möjligt för administratören att bedriva verksamhet med dem självständigt, utan rädsla för avlyssning eller obehörig åtkomst till databasen.

dataöverföring

Kommunikation mellan en lagrad SQL-procedur och klientprogrammet är att använda parametrar och returvärden. Det senare är inte nödvändigt att överföra data till en lagrad procedur, men informationen (främst på användarens begäran) och behandlas för SQL. En gång lagrad procedur har slutfört sin uppgift, sänder den datapaketen tillbaka (men, återigen, om så önskas) till den anropande applikationen med hjälp av olika metoder genom vilka kan implementeras som en uppmaning till en lagrad SQL-procedur och retur, till exempel:

- dataöverföring via Output parameter typ;

- dataöverföring via retur uttalande;

- Dataöverföring via val.

Och nu tittar på hur denna process ser likadant ut inuti.

1. Skapa EXEC-lagras i SQL-procedur

Du kan skapa ett förfarande i MS SQL (Managment Studio). Efter ingreppet har skapats är det noterat på en programmerbar databas nod, där förfarandet utförs av operatören av skapelsen. För att köra SQL lagrade procedurer använder EXEC-en process som innehåller objektnamnet.

När du skapar namnet kommer första förfarandet, och gjorde sedan en eller flera parametrar som är tilldelade honom. Parametrar kan vara frivillig. Efter parameter (s), det vill säga själva förfarandet, som skall skrivas, är det nödvändigt att utföra vissa nödvändiga operationer.

Det faktum att kroppen kan ha lokala variabler, som ligger i det, och dessa variabler är lokala och i förhållande till förfaranden. Med andra ord kan de endast övervägas inom kroppsbehandlingar Microsoft SQL Server. Lagrade procedurer i det här fallet anses lokalt.

Således, för att skapa en process, behöver vi ett förfarande namn och åtminstone en parameter som ett förfarande kropp. Observera att ett utmärkt alternativ i detta fall är skapandet och genomförande av förfaranden med schemanamn i klassificerare.

Förfarandet kroppen kan ha någon form av operatörer SQL, till exempel, som att skapa en tabell, infoga en eller flera rader i tabellen, om inrättande av databasen typ och karaktär, och så vidare. Ändå begränsar förfarandet kroppen vissa operationer i den. Några av de viktigaste begränsningarna är listade nedan:

- kroppen inte skapar någon annan lagrad procedur;

- kroppen får inte skapa ett falskt intryck om objektet;

- kroppen inte skapa några triggers.

2. Ställ in variabeln i kroppen av förfarandet

Du kan göra variabler lokal förfarandet i kroppen, och då kommer de att vara inom ett förfarande kropp. En god praxis är att skapa en variabel i början av den lagrade proceduren kroppen. Men du kan också ställa in variabler som helst i kroppen av objektet.

Ibland kanske du märker att vissa variabler ställs in på samma rad, och varje variabel separerade med ett kommatecken. Observera också att variabeln prefixet @. I kroppen av förfarandet kan du ställa in en variabel som du vill. Till exempel kan en variabel @ NAME1 tillkännages mot slutet av förfarandet kroppen. För att tilldela ett värde till en variabel deklareras med en samling av personuppgifter. I motsats till situationen när mer än en variabel deklareras i samma rad, bara en uppsättning av personuppgifter som används i denna situation.

Användare ofta ställa frågan: "Hur man tilldela flera värden i ett enda uttalande i kroppen av förfarandet 'Nå?. Intressant fråga, men det är mycket enklare än du tror. Svaret: med hjälp av sådana par som «Select Var = värde". Du kan använda dessa par, separerade med kommatecken.

3. Skapa en SQL lagrad procedur

I ett stort antal exempel på människor visar att skapa en enkel lagrad procedur och köra den. Emellertid kan förfarandet vidta sådana parametrar som den uppringande process kommer att ha ett värde nära det (men inte alltid). Om de matchar startar sedan motsvarande processer i kroppen. Till exempel, om du skapar en procedur som tar staden och regionen från den som ringer och returnera data om hur mycket författarna hänvisar till motsvarande staden och regionen. Tillvägagångssättet kommer att fråga en databastabell författare, till exempel, pubar, för att utföra denna beräkning författare. För att erhålla dessa databaser, till exempel Google hämtar SQL-skript med SQL2005 sida.

I föregående exempel tar proceduren två parametrar, som på engelska skulle kallas villkorligt @State och @City. Datatypen motsvarar den typ som anges i ansökan. Förfarandet kroppen har interna variabler @TotalAuthors (alla författare), och denna variabel används för att visa deras antal. Därefter kommer en begäran urval avsnitt som alla punkter. Slutligen det beräknade värdet visas i utgångsfönstret med utskrifts uttalande.

Hur man utför en SQL lagrad procedur

Det finns två sätt att utföra proceduren. Det första sättet visas genom att parametrar som en kommaseparerad lista sker efter ingreppet namnet. Antag att vi har två värden (som i föregående exempel). Dessa värden samlas in med hjälp variabler och @State @City förfarande. I denna metod, viktiga parametrar för överföringsordningen. Denna metod kallas sändningssekvensen av argument. I den andra metoden, är de parametrar som redan har tilldelats direkt, i vilket fall ordningen är inte viktigt. Denna andra metod är känd som överföringen av namngivna argument.

Förfarandet kan något avvika från den typiska. Alla samma som i det tidigare exemplet, men parametrarna flyttas här bara. Det är @City parameter lagras först och @State lagras bredvid standardvärdet. Standardinställningen är vanligtvis tilldelas separat. SQL lagrade procedurer är enkla parametrar. I detta fall, förutsatt att alternativet "UT 'ersätter standardvärdet" CA ". I en andra utföringsform passerar endast ett argument värde för @City, och @State options standard "CA". Erfarna programmerare rekommenderas att alla standardvariabler ligger närmare till slutet av parameterlistan. Annars är utförandet inte är möjligt, då måste man arbeta med överföringen av namngivna argument att ju längre och mer komplicerade.

4. lagrade procedurer SQL Server: sätt att återvända

Det finns tre huvudsakliga sätt att skicka data som lagrats i den uppringda förfarande. De är listade nedan:

- returvärden lagrade proceduren;

- Resultat parameter lagrade procedurer;

- Välj en av de lagrade procedurer.

4.1 Retur värden på SQL-lagrade procedurer

I detta förfarande, proceduren ställer in värdet av den lokala variabeln och returnerar den. Förfarandet kan också direkt returnera ett konstant värde. I följande exempel har vi skapat ett förfarande som returnerar det totala antalet sponsorer. Om vi jämför detta med det tidigare förfarandet, kan man se att värdet av print ersättas med omvända.

Nu ska vi titta på hur man utföra proceduren och visa värdet tillbaka den. Utför procedurer som krävs för att etablera och rörlig utskriften, vilket utförs efter processen. Lägg märke till att i stället för att skriva ut operatören kan använda Select-operatör, till exempel Välj @RetValue och OutputValue.

4.2 Utgång Parameter SQL lagrade procedurer

Svaret värde kan användas för att returnera en enda variabel som vi har sett i det tidigare exemplet. Med hjälp av Output gör proceduren för att skicka en eller flera variabler till den som ringer. Utgångs parameter betecknas som tiden här nyckelordet «Output» när du skapar procedur. Om parametern anges som en utgång parameter måste proceduren objektet tilldela den ett värde. Lagrade procedurer SQL, av vilka exempel kan ses nedan, i ett sådant fall återvänder till den slutliga informationen.

I det här exemplet, kommer det att finnas två helger namn: @TotalAuthors och @TotalNoContract. De anges i parameterlistan. Dessa variabler tilldelas värden inom förfarandet kroppen. När vi använder utgångsparametrar kan den som ringer se värdet i förfarandet kroppen.

Dessutom i föregående scenario är två variabler förklaras se de värden som är installerade lagrade procedurer, MS SQL Server som en utgång parameter. Då proceduren utförs genom att tillämpa normalvärdet «CA» parameter. Följande parametrar matas ut och därför förklarade variabler förs på föreskrivet sätt. Observera att när en variabel utgång sökord också anges här. Efter proceduren slutförts, är det värde som returneras med hjälp av utgångsparametrar visas i meddelandefönstret.

4,3 Välja SQL-lagrade procedurer

Denna teknik används för att returnera en uppsättning i form tabellen datavärden (RecordSet) för att anropa en lagrad procedur. I detta exempel SQL lagrad procedur med parametrar @AuthID begär table "författare" genom att filtrera posterna returneras av denna parameter @AuthId. Välj operatör bestämmer vad som skall återlämnas till den som ringer en lagrad procedur. När en lagrad procedur AUTHID sänds tillbaka. Ett sådant förfarande är alltid återvänder bara en skiva eller ingen alls. Däremot den lagrade proceduren inte har några begränsningar för återlämnande av mer än en post. Ofta exempel kan man finna i vilket returdata som valts med hjälp av parametrar med de beräknade variablerna görs genom att tillhandahålla ett flertal av de totala värdena.

Sammanfattningsvis

En lagrad procedur är en ganska allvarlig program, återvände eller överföras, samt fastställande av nödvändiga variablerna på grund av klientprogrammet. Eftersom den lagrade proceduren körs på servern själv, kan datautbyte i stora volymer mellan servern och klientprogrammet (för vissa beräkningar) undvikas. Detta gör det möjligt att minska belastningen på SQL Server, vilket naturligtvis är hand deras innehavare. En av de underarter är lagrade procedurer T SQL, men deras studie behövs för att de som deltar i skapandet av en imponerande databas. Det finns också en stor, även enorm mängd nyanser som kan vara användbara i studier av lagrade procedurer, men detta behov för dem som planerar att göra snäva programmering, inklusive professionellt.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sv.delachieve.com. Theme powered by WordPress.