OrdenagailuakDatu baseak

SQL gordetako prozedurak: sortu eta erabili

SQL gordetako prozedurak exekutagarria software modulu hori gorde daiteke dira datu-basearen hainbat objektu formularioa. Bestela esanda, SQL-adierazpena daukan objektu bat da. gordetako prozedurak hauek bezero aplikazio errendimendu ona lortzeko gauzatu daiteke. Horrez gain, instalazioak, hala nola, maiz, beste gidoiak batetik edo baita beste edozein atal deitu.

sarrera

Jende askok uste du, hainbat prozedurak antzekoak direla goi-mailako programazio hizkuntzetan (hurrenez hurren, MS SQL ezik). Agian, hau ez da egia. antzeko parametroetan dute, antzeko balio bat igorriko ahal izango dute. Gainera, kasu batzuetan, etortzen harremanetan jartzen dira. Adibidez, DDL datu-base eta DML datuen, baita erabiltzaile-funtzioak (- UDF kodea izena) ekin zioten konbinatzen dira.

Egia esan gordetako SQL prozedura hori prozesu horien artean bereizteko abantaila sorta zabal bat. Segurtasun, aldakortasun programazio produktibitatea - hori guztia erakartzen base batekin lanean erabiltzaileak, gero eta gehiago. arrakasta gailurra iritsi zen prozedura urteetan 2005-2010, noiz eta "Microsoft" izen «SQL Server Kudeaketa Studio» azpitik programaren dut. Bere laguntzaz, base batekin lan egin du, askoz errazagoa da, praktiko eta erosoagoa bihurtzen dira. Urtez urte, hau informazioa transmititzeko metodo irabazi ospea programazio ingurunea. Gaurkoan MS SQL Server erabat ohiko programa, eta horretarako, erabiltzaileei "komunikatu" base batera, "Excel" par bat koa da.

Noiz prozedura deitu, da berehala zerbitzariak prozesatu alferrikako prozesuak eta erabiltzailea arduratu gabe. ezabatzeko, gauzatzea, aldaketa: orduan informazioarekin edozein ekintza egin ditzakezu. hori guztia baino gehiago DDL-operadorea, bakar-handedly objektu horietan ekintzak konplexuak egiteko dago. Eta oso azkar gertatzen den guztia, eta zerbitzariak ez duela benetan kargatu. Abiadura hau eta produktibitatea utzi azkar transferitzeko informazio kopuru handiak zerbitzaria eta alderantziz Erabiltzaile batetik.

informazioarekin lan hau aurrera eramateko, badira hainbat programazio hizkuntzetan teknologiak. Horien artean, esaterako, PL / SQL batetik datu- Oracle, psql InterBase eta Firebird sistemetan, baita klasiko "maykrosoftovskih» izapideak-SQL. Guztiek sortzeko eta gordetako prozedurak exekutatu, a database kudeatzaileen handietan euren algoritmoak erabili aukera ematen diseinatuta daude. Beharrezkoa da, eta informazio hori kudeatzeko burutzen dutenek, objektu guztiak babesteko baimenik gabeko hirugarrenek eta, beraz, sortu, aldatu edo datu jakin batzuk ezabatzeko bermatzeko.

produktibitatea

datu-base objektu hauek modu ezberdinetan programatutako dezake. Hau erabiltzaile-prozesu hori egokiena izango litzateke mota, zein denbora eta energia aurrezten hautatzeko aukera ematen du. Gainera, prozedura bera prozesatu, beraz, denbora handi zerbitzariari eta erabiltzailearen arteko komunikazioa gastatu saihestuz. moduluak berrantolatu daiteke eta norabide egokian aldatu erabat noiznahi ere. Batez ere merezi abiadura egoten, honekin SQL gordetako prozedura abian jartzeko gertatzen da: prozesua azkarragoa beste hura antzekoa da, erosoa da eta polifazetikoa egiteko.

segurtasuna

Informazio prozesatzeko mota honek segurtasun hobetu eskaintzen duela antzeko prozesuak desberdina. Hau da, hain zuzen prozedura sartzea beste erabiltzaileek kanporatua daiteke erabat ziurtatuta. Hau administratzaileak haiekin eragiketak egiteko independentean, atzematea edo baimenik gabe datu basean sartzeko beldurrik gabe ahal izango dira.

datu-transferentzia

a gordetako SQL prozedura eta bezero aplikazioa arteko komunikazioa da parametro erabili eta balioak itzultzeko. Azken hori ez da beharrezkoa, datuak transmititzeko gordetako prozedura bat da, baina informazioa (batez ere, erabiltzailearen eskaera), eta SQL prozesatu. Behin gordetako prozedura bere lana bukatu du, datuak paketetan bidaltzen da atzera (baina, berriz ere, nahi izanez gero) deituz aplikazioa metodo horren bidez, a gordetako SQL prozedura eta bueltan, adibidez dei moduan eginda egon daiteke barietate bat erabiliz:

- Datu-transmisioa irteera parametro mota bidez;

- datuen transmisio itzulera adierazpena bidez;

- Datuen transmisioa garraiolari hautaketa bidez.

Eta orain, nola prozesu honetan barnean bera itxura begiratu.

SQL prozeduran 1. Sortu Exec-gordetako

MS SQL (kudeaketa Studio) ere prozedura bat sor dezakezu. Prozedura hori sortu ondoren, datu-basea programagarriak nodo, zein prozedurari sorkuntzaren operadoreak egiten da on da zerrendan. SQL gordetako prozedurak exekutatu objektuaren izena daukan Exec-a prozesua erabiliz.

Noiz izenarekin sortzeko lehen prozedura dator, eta gero direla zion esleitutako bat edo gehiago parametro egin. Parametroak aukerako izan daiteke. parametro (k) Azken finean, hau da prozedura gorputzean, idatzi egin ahal izateko, beharrezkoa da beharrezkoa eragiketak batzuk burutzeko.

Izan ere, gorputzaren aldagai lokalak, bertan kokatua izan dezake, eta aldagai horiek tokiko eta prozedurak aldean daude. Bestela esanda, egon ahal izango dute soilik gorputz tratamenduak barruan jotzen Microsoft SQL Server. Gordetako kasu honetan prozedura jotzen local dira.

Horrela, prozesu bat sortzeko, prozedura izena eta parametro bat gutxienez prozedura organo gisa behar dugu. Kontutan izan, kasu honetan, aukera bikaina dela sortzea eta ezartzea, eskema izen bat sailkatzailea dituen prozedurak da.

Prozedura gorputzaren edozein operadore SQL mota izan ditzake, adibidez, besteak beste, mahai bat sortzeko, mahaiaren lerro bat edo gehiago sartu eta datu-base mota eta izaera ezarriz, eta abar. Hala ere, prozedura gorputzaren eragiketak batzuk mugatzen bertan. muga garrantzitsuenetako batzuk zerrendatzen dira:

- gorputza ez du gordetako beste edozein prozedura sortu;

- Gorputzaren ez objektuaren buruzko inpresioa faltsua bat sortu behar du;

- gorputza ez du inolako abiarazleak sortzeko.

2. Ezarri aldagaia prozedura gorputzean

aldagai gorputzaren prozedura tokiko egin dezakezu, eta, ondoren, prozedura gorputza barru izango dira. praktika ona da, aldagai bat sortzeko gordetako prozedura gorputzaren hasieran. Baina aldagai ere ezarri ahal izango duzu, edozein lekutan objektuaren gorputzean.

Batzuetan aldagai batzuek berean errenkadan ezartzen dira, eta koma aldagai bakoitzak nabarituko dezakezu. Era berean, kontutan aldagaia horrekin @ aurrizkidun da. prozedura gorputzean, nahi duzu zein aldagai bat ezar dezakezu. Adibidez, aldagai bat @ NAME1 prozedura gorputzaren amaieran iragarri daiteke. Ordena aldagai baten balio bat esleitzeko ere datu pertsonalen multzo bat erabiliz deklaratu. egoeraren aldagai bat baino gehiago berean errenkadan deklaratu kontrastea, datu pertsonalen multzo bat bakarrik egoera hau erabiltzen.

Erabiltzaileek askotan eskatu galdera: "Nola hainbat balio esleitzeko adierazpen bakar batean prozedura gorputzean« Tira. Interesgarria da galdera, baina hau da zuk uste baino askoz errazagoa. Erantzuna: bikote esaterako laguntzaz «Aukeratu Var = balio gisa". bikote horiek, komaz bereizita erabil dezakezu.

3. Sortu SQL gordetako prozedura baten

Jende adibide askotariko erakutsi gordetako prozedura sinple bat sortzeko eta exekutatu. Hala ere, prozedura esaterako parametro hori deituz prozesua da (baina ez beti) hurbil balio izango du iraun dezake. etor badute, orduan dagokion gorputz barruan prozesuak hasten. Adibidez, prozedura hori hiriaren eta eskualdearen hartuko deitzailearen eta zenbat egileek dagokion hiri eta eskualde aipatzeko buruzko datuak itzultzeko sortzen baduzu. Prozedura database egileen mahai baten galdetzeko, adibidez, tabernetan eta, kalkulua autore hau egin da. base horiek lortzeko, adibidez, Google SQL2005 orriarekin SQL gidoia deskargatzen ditu.

aurreko adibidean, prozedura bi parametro, zein ingelesez deitu beharko litzateke baldintzatuan @State eta @City hartzen. datu mota aplikazioan emandako motako dagokio. Prozedura gorputz barneko aldagai @TotalAuthors (autore guztiak), eta aldagai hau beraien kopurua erakusteko erabiltzen da. Hurrengo a atalean aukeraketa eskaera hori zenbatzen guztiak dator. Azkenik, kalkulatu balio irteera leihoaren inprimatu adierazpena erabiliz bistaratzen da.

Nola SQL gordetako prozedura bat gauzatzeko

Bi modu daude prozedura egiteko. Lehenengo bidea parametro pasatzen komaz bereizitako zerrenda prozedura izenaren ondoren egiten den bezala erakusten da. Demagun bi balio izan dugu (aurreko adibidean bezala). Balio horiek aldagai eta @State @City prozedura erabilita biltzen dira. Metodo honetan, transmisio ordena parametro garrantzitsua. Metodo honek deritzo transmisioa argumentuak sekuentzia. Bigarren metodoa, parametroak dagoeneko esleituta dira zuzenean, eta kasu horretan, eskaera ez da garrantzitsua. Bigarren Metodo hau argumentuak izeneko transmisioa bezala ezagutzen.

Prozedura daiteke zertxobait tipikoak desbideratu. bera, aurreko adibidean bezala Guztiak, baina parametroak desplaza dira hemen bakarrik. Hau da @City parametro gordetzen den lehenengo, eta @State balio lehenetsia ondoan gordetzen. Ezarpen lehenetsia banaka esleitu ohi da. SQL gordetako prozedurak parametro sinple gisa. Kasu honetan, baldin eta aukera CA "" UT du 'balio lehenetsia ordezkatzen du ". Bigarren isla bat besterik argumentu @City baliorik bat, eta @State aukera "CA" lehenetsiak pasatzen da. Esperientziadun programatzaileek gomendatzen zaie aldagai lehenetsi guztiak hori kokatzen diren parametro zerrendaren amaieran hurbilago. Bestela, exekuzioa ez da posible, orduan argumentu hori luzeagoa eta zailagoa izeneko transferentzia batekin lan egin behar duzu.

4. gordetako prozedurak SQL Server: itzuli moduak

Badira hiru modu nagusiak izeneko prozedura gordetako datuak bidaltzeko. jarraian zerrendatzen dira:

- itzulera-balioak gordetako prozedura;

- Irteera parametro gordetako prozedurak;

- Aukeratu gordetako prozedurak bat.

4.1 Return SQL gordetako prozedurak balioak

Prozedura honetan, prozedura tokiko aldagai balioa ezartzen eta itzultzen. Prozedura ere zuzenean itzultzeko etengabeko balio bat. Adibide honetan, babesle kopuru osoa itzultzen duen prozedura bat sortu dugu. hau alderatu ditugu, aurreko prozeduraren gero, ikus daiteke inprimatu balioa hori ordezkatu alderantziz eginda.

Orain dezagun prozedura nola egin eta balioa bistaratu, itzultzeko ere. Eszenikoen prozedurak ezarri eta aldagai inprimatzeko, horrek egiten da prozesuaren ondoren beharrezkoa. Oharra ordez operadorea inprimatzeko Hautatu-operadorea erabili ahal izango da, adibidez, Aukeratu @RetValue, eta OutputValue da.

4.2 Irteera Parametroa SQL gordetako prozedurak

erantzun-balioa erabili ahal izango da aldagai bakar bat, aurreko adibidea ikusi dugu itzultzeko. Irteera prozedura erabiltzea ahalbidetzen aldagai bat edo gehiago bidaltzeko deituz festa. Irteera parametro «Irteera» gakoa hitz honetan denbora gisa izendatzen denean, prozedura sortzeko. parametro irteera parametro gisa zehazten bada, prozedura objektuaren balio bat esleitzeko behar. Gordetako prozedurak SQL, adibide horietako behean ikus daiteke, azken informazio itzultzean, kasu horretan.

Adibide honetan, bi asteburutan izen izango da: @TotalAuthors eta @TotalNoContract. parametro zerrendako dute zehazten dira. aldagai hauek balioak esleitzen dira prozedura gorputzaren barruan. Noiz irteera parametroak erabiltzen dugu, deitzailearen prozedura gorputzean ezarri balioa ikusi ahal izango da.

Horrez gain, aurreko egoeran, bi aldagaiak deklaratu dira gordetako prozedurak, MS SQL irteera parametro gisa zerbitzaria instalatu dira balioak ikusteko. Ondoren prozedura da balio normal «CA» parametro aplikatuz egindako. Hurrengo parametroak irteera dira eta, ondorioz, deklaratu aldagaiak agindutako eran pasatu dira. Kontuan izan denean aldagai irteera gako bat ere hemen agertzen den. prozedura amaitu ondoren arrakastaz, irteera-parametroak erabiliz itzuli balioa mezuaren leihoan bistaratzen dira.

4.3 SQL gordetako prozedurak bat hautatzea

Teknika hau forma mahai datuen balioak (erregistro) en multzo bat itzuli behar gordetako prozedura bat deitzeko erabiltzen da. Adibide honetan, SQL gordetako prozedura @AuthID eskaerak taula "autore" parametro @AuthId hau itzultzen erregistro iragazita parametro batekin. Aukeratu operadorea erabakitzen zer da gordetako prozedura bat deituz itzuli behar du. Noiz gordetako prozedura baten AuthId transmititu atzera. Horrelako prozedura bat da, beti erregistro edo bat ere ez duen bakarra batere itzultzen du. Hala ere, gordetako prozedura ez ditu sarrera bat baino gehiago itzulera edozein murrizketak. Askotan adibide aurki daitezke bertan hautatutako kalkulatzen aldagai parametroak erabiliz itzulera datuak balioak guztira pluraltasuna eskainiz egin.

Ospakizuna

gordetako prozedura programa nahiko larria da, itzuli edo transferitu, baita beharrezko aldagaiak ezartzen direla eta bezero aplikazio gisa. gordetako prozedura da zerbitzari bera exekutatu zenetik, datu zerbitzari eta bezero aplikazioa (kalkulu batengatik) arteko bolumen handietan truke saihestu daiteke. Horri esker, karga murrizteko posible SQL zerbitzaria, eta horrek, noski, haien titular eskutik dagoenean ere. subespezie bat gordetzen dira prozedurak T SQL, baina haien azterketa egin behar da horiek datu-basea ikusgarria sorreran parte hartu du. Halaber, bada, nahiz eta ñabardura hori gordetako prozedurak aztertzeko baliagarria izan daiteke kopuru handi handi bat, hala ere, nor dira plangintza horiek premia hau estuak programazioa egin, profesionalki barne.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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