Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 7095|Odpověď: 0

Transakce a uložené procedury, které jsou základem databáze

[Kopírovat odkaz]
Zveřejněno 15.03.2019 22:45:21 | | | |


předmluva


Minule jsem chtěl uspořádat veškerý základní obsah SQL, ale zjistil jsem, že čas běží dřív, než jsem si to uvědomil. Tento článek pokračuje níže.


Text


Nejprve si vytvoříme tabulky, které potřebujeme



Nejprve provedeme SQL příkaz


Tento kód odečítá zůstatek 0001 číslem 1000 a zůstatek 0002 číslem 1000. Ale při sestavování tabulky jsme přidali omezení a zůstatek musí být větší nebo roven 10.

Výsledky jsou následující:
                  

Takže tato chyba při spuštění kódu: "Příkaz UPDATE je v rozporu s omezením CHECK "CH_balance". Konflikt nastává v databázi "DemoDb" s tabulkou "dbo. Banka", sloupec 'balance'。” 。 Pokud je jeden výrok chybný, pak zda byl druhý výrok úspěšně vykonán.

Výsledky dotazu jsou následující:
                     

Uvidíme, že další SQL příkaz nemá žádné chyby, ale stále se úspěšně necommituje. Zde je, co vám odhalíme.

#Transakce

Co je to transakce?
Přesněji řečeno, pokud operace splňuje atomicitu, perzistenci, izolaci a konzistenci, nazývá se tato operace transakcí.
Automaticky odesílejte transakce: v SQL Serveru. Ve výchozím nastavení je každý SQL příkaz transakcí.
Zobrazit transakce: Každá transakce začíná explicitně příkazem BEGIN TRANSACTION a končí explicitně příkazem COMMIT nebo ROLLBACK.



Demo, které jsme zmínili výše, skončilo s Rollbackem, takže SQL se neprojevuje. Data nebyla úspěšně upravena.

Při skutečném vývoji a aplikaci obvykle nastavujeme vrstvu transakcí mimo příkaz non-query, abychom zajistili integritu a konzistenci dat podle skutečných potřeb. Buď uděláš všechno, nebo neuděláš všechno.

Existují dvě systémové proměnné, které logují chybný SQL kód. - @@rowcount vrací počet ovlivněných řádků @@error vrací nesprávné kódování

Použijme tyto dvě systémové proměnné k určení, zda v SQL není chyba, a provedeme výše uvedené dva SQL příkazy.



#Uložené procedury

Význam: Zaklopte proces, který je prováděn (a může být složitý), do názvu a poté použijte toto jméno k provedení procesu.



>
Bezparametrové uložené procedury


>Uložené procedury s parametry



>Uložená procedura s návratovou hodnotou



Zkus chytit v databázi



Existují také uložené procedury s výchozími parametry, které byly zmíněny v předchozím článku o stránkování.


Epilog


Uložené procedury se více používají v našich projektech, mnoho starých systémů, obchodní logika je zapsána v uložených procedurách a lidé za tím ji udržují, a ti si prostě chtějí během pár minut rozbít hlavu před sebou. Obecně platí, že obchodní logika je zapsána v kódu, ale počet čtení dat z databáze a obchodní logika je zapsána v procesu úložiště. Loni byl velmi složitý řetězec obchodní logiky v projektu firmy přesunut do procesu ukládání dat, což zvýšilo rychlost desítkykrát. Samozřejmě, zvláštní okolnosti jsou zvýhodněny. Konkrétní použití závisí na konkrétní situaci.






(Poznámka: Výše uvedený obsah jsou studijní poznámky roku, pokud je něco nevhodného, prosím opravte to!) )









Předchozí:Mám pocit ze systému zákaznického servisu velkých firem
Další:Video z Andale HCNP a HCIE
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com