Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 7095|Odpoveď: 0

Transakcie a uložené procedúry, ktoré sú základom databázy

[Kopírovať odkaz]
Zverejnené 15. 3. 2019 22:45:21 | | | |


predhovor


Minule som chcel zorganizovať všetok základný obsah SQL, ale zistil som, že čas beží skôr, než som si to uvedomil. Tento článok pokračuje nižšie.


Text


Najprv vytvorme tabuľky, ktoré potrebujeme



Najprv spustíme SQL príkaz


Tento kód odčíta zostatok 0001 číslom 1000 a zostatk 0002 číslom 1000. Ale pri tvorbe tabuľky sme pridali obmedzenia a zostatok musí byť väčší alebo rovný 10.

Výsledky sú nasledovné:
                  

Takže táto chyba pri vykonávaní kódu: "Príkaz UPDATE je v rozpore s obmedzením CHECK "CH_balance". Konflikt nastáva v databáze "DemoDb" s tabuľkou "dbo. Banka", stĺpec 'zostatok'。” 。 Ak je jeden výrok chybný, potom či bol druhý výrok úspešne vykonaný.

Výsledky dopytu sú nasledovné:
                     

Uvidíme, že ďalší SQL príkaz nemá chyby, ale stále sa úspešne necommituje. Tu je, čo vám odhalíme.

#Transakcie

Čo je to transakcia?
Prísne povedané, ak operácia spĺňa atomicitu, perzistenciu, izoláciu a konzistenciu, potom sa operácia nazýva transakcia.
Automatické odosielanie transakcií: v SQL Serveri. V predvolenom nastavení je každý SQL príkaz transakciou.
Zobraziť transakcie: Každá transakcia začína explicitne príkazom BEGIN TRANSACTION a končí explicitne príkazom COMMIT alebo ROLLBACK.



Demo, ktoré sme spomenuli vyššie, skončilo s Rollbackom, takže vykonávanie SQL sa neprejavuje. Údaje neboli úspešne upravené.

Pri skutočnom vývoji a aplikácii zvyčajne nastavujeme vrstvu transakcií mimo príkazu non-quer, aby sme zabezpečili integritu a konzistenciu dát podľa skutočných potrieb. Buď urob všetko, alebo nerob všetko.

Existujú dve systémové premenné, ktoré zaznamenávajú chybný SQL kód. - @@rowcount vráti počet ovplyvnených riadkov @@error vráti nesprávne kódovanie

Použijme tieto dve systémové premenné na určenie, či v SQL nedošlo k chybe, a vykonajme vyššie uvedené dva SQL príkazy.



#Uložené procedúry

Význam: Zapuzdriť proces, ktorý sa vykonáva (a môže byť zložitý), do názvu a potom použiť toto meno na vykonanie procesu.



>
Uložené procedúry bez parametrov


>Uložené procedúry s parametrami



>Uložená procedúra s návratnou hodnotou



Skús chytiť v databáze



Existujú aj uložené procedúry s predvolenými parametrami, ktoré boli spomenuté v predchádzajúcom článku o stránkovaní.


Epilóg


Uložené procedúry sa viac používajú v našich skutočných projektoch, mnohé staré systémy, obchodná logika je napísaná v uložených procedúrach a ľudia za tým ju udržiavajú, a jednoducho chcú za pár minút rozbiť psa do hlavy. Vo všeobecnosti je obchodná logika zapísaná v kóde, ale počet čítaní dát z databázy a obchodná logika sa zapisujú v procese ukladania. Minulý rok bol veľmi zložitý reťazec obchodnej logiky v projekte spoločnosti presunutý do procesu ukladania, čo zvýšilo rýchlosť desiatky násobkov. Samozrejme, špeciálne okolnosti sa riešia osobitne. Konkrétna aplikácia závisí od konkrétnej situácie.






(Poznámka: Vyššie uvedený obsah sú študijné poznámky roka, ak je niečo nevhodné, prosím, opravte to!) )









Predchádzajúci:Mám pocit zo systému zákazníckeho servisu veľkých firiem
Budúci:Video z Andale HCNP a HCIE
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com