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!) )
|