SQLShack
Ladění je jedním z nejdůležitějších, ale bolestivé části softwarového procesu. Chcete-li najít některé chyby, musíte spustit kód krok za krokem, abyste zjistili, která část kódu je za chybu zodpovědná. Tomu se říká Runtime ladění.
naštěstí SQL Server Management Studio (SSMS) přichází s automatizovanými možnostmi ladění, které vývojářům pomáhají ladit jejich skripty. V tomto článku si prakticky vysvětlíme, jak lze SSMS použít k ladění uložených procedur v SQL Serveru pomocí velmi jednoduchého příkladu.
Příklad
Pro náš příklad, budeme používat uložené procedury „spShowOddNumbers“, která trvá dvě čísla jako jeho parametry a vytiskne lichá čísla mezi ty dvě zadané čísla.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
VYTVOŘIT POSTUP spShowOddNumbers
@LowerRange INT,
@UpperRange INT
BEGIN
WHILE(@LowerRange < @UpperRange)
BEGIN
, pokud(@LowerRange%2 != 0)
BEGIN
PRINT @LowerRange
END
SET @LowerRange = @LowerRange + 1
END
PRINT ‚TISKNOUT LICHÁ ČÍSLA MEZI‘ + RTRIM(@lowerRange) + ‚ a ‚ + RTRIM(@UpperRange)
END
|
skript, který volá uložená procedura v SQL Server:
1
2
3
4
5
6
7
8
9
|
PROHLAŠUJI, @lowerrange INT
SET @lowerrange = 5
DECLARE @upperrange INT
SET @upperrange = 20
EXEC spShowOddNumbers @lowerrange, @upperrange
DROP PROC spShowOddNumbers
|
možnosti Ladění
V SQL Server Management Studio máte různé možnosti ladění.
Start Debugging
spustit ladění serveru SQL server uložené procedury v SQL Server, stiskněte ALT + F5, nebo jít do Debug -> Spustit Ladění, jak je znázorněno na obrázku níže:
Po spuštění ladicího programu v okně, kde se volá uložená procedura v SQL Server, uvidíte, že tam bude žlutý kurzor na začátek okna dotazu, jak je znázorněno níže:
Teď jste začali ladění můžete krokovat kód.
krokování skriptem
existují tři možnosti, jak projít kódem: 1) překročit, 2) vstoupit a 3) vystoupit. Tyto možnosti můžete zobrazit kliknutím na ladění, jak je znázorněno na obrázku níže:
- Krok Přes (F 10)
Krok Přes jednoduše přesune kurzor na další řádek spustitelný skript. Například, pokud ladicí program je v následujícím umístění ve skriptu:
Klepnutím na tlačítko Krok Přes nebo stiskem F10 jednoduše přesune kurzor na následující řádek:
- Krok Do (F 11)
To je jeden z nejvíce důležité a užitečné funkce ladění. Krok do umožňuje proniknout do uloženého skriptu procedur ze skriptu, který volá uloženou proceduru.
je důležité zmínit, že Step Into funguje jako Step Over. Pokud řádek spouštěného skriptu neobsahuje žádné volání na uloženou proceduru v SQL Serveru.
například pokud vstoupíte do:
1SET @upperrange = 20ladicí program bude jednoduše přesunout řízení na další řádek:
1EXEC spShowOddNumbers @lowerrange, @upperrangevýše uvedený řádek obsahuje volání uložená procedura v SQL Server. Nyní, pokud jste Krok Do tohoto řádku skriptu, ladicí program bude trvat do skriptu ‚spShowOddNumbers‘ uložená procedura, jak je znázorněno na následujícím obrázku.
- Step Out (Shift + F11)
Krok Ven je opačný Krok. Pokud jste uvnitř uložené procedury v SQL Serveru a chcete se vrátit ke skriptu, který volá uloženou proceduru, můžete použít krok ven. Například, pokud kliknete na krok na:
1ZATÍMCO(@LowerRange < @UpperRange)Ladicí program bude trvat vás zpět do skriptu, který volá funkci, tj.
Spustit Ke Kurzoru
možnosti Ladění spustit jeden řádek najednou. Pokud je smyčka nebo dlouhý kus kódu, který chcete, aby vaše debuggeru přeskočit, můžete použít ‚Kurzor‘ volba.
1
|
ZATÍMCO(@LowerRange < @UpperRange)
|
například, je-li kurzor na následující řádek uložené procedury v SQL Server a chcete přeskočit smyčky a jít do tisku prohlášení po smyčce. Můžete jednoduše přejít na tiskový příkaz a kliknout na“ spustit na kurzor“, jak je uvedeno níže:
smyčka bude přeskočena a kurzor bude nyní ukazovat na tiskový příkaz.
Místní Okno
místní okno vám pomůže sledovat hodnoty proměnných ve skriptu. V tomto příkladu máme v našem skriptu dvě proměnné @LowerRange a @UpperRange. Na začátku smyčky while v uložené proceduře v SQL Serveru je hodnota proměnné @LowerRange 5, zatímco proměnná @UpperRange je 20, jak je znázorněno na obrázku níže:
po spuštění smyčky a pak zkontrolujte hodnotu proměnné uvidíte, že @LowerRange a @UpperRange proměnné budou zobrazovat 20 jako jejich hodnota. V okně místní obyvatelé se zobrazí název, hodnota a typ proměnné. Pomocí okna Locals je velmi jednoduché sledovat změny v hodnotách proměnných, jak budete postupovat prostřednictvím skriptu.
Pokud zavřete okno Locals omylem a chcete, aby ji zpět, můžete jednoduše jít do Debug -> Windows> Místní obyvatelé, jak je uvedeno níže:
Hodinky Okna
Hodinky okno je velmi podobné okno Locals. Jediným rozdílem je, že můžete přidat nebo odebrat proměnné z okna Hodinky, což může být užitečné při práci s velkým počtem proměnných ve větších skriptech.
Chcete-li přidat proměnnou do Hodinky okna, jednoduše vyberte proměnnou, klepněte pravým tlačítkem myši a poté vyberte možnost „Add Watch“, jak je znázorněno na následujícím obrázku:
Podobně, odstranit proměnné, klepněte pravým tlačítkem myši na název proměnné v okně kukátka a klikněte na tlačítko „Delete Hodinky“ ze seznamu možností. Jak je uvedeno níže:
Call Stack
Zásobník Volání, jak název napovídá, zobrazí zásobník volání, které byly provedeny až do současného bodu.
první řádek v Zásobník Volání na obrázku výše, nám říká, že v současné době spShowOddNumbers uložená procedura je proveden, a v okamžiku, kdy ladicí program je na lince 14 ze souboru, který obsahuje uložené procedury. Druhý řádek označuje, že tato uložená procedura byla volána ze skriptu na řádku 7 SQLQuery2.sql soubor.
bezprostřední okno
bezprostřední okno je podobné oknu konzoly. Můžete například provádět matematické operace v bezprostředním okně, zkontrolovat hodnoty proměnných atd. Následující snímek obrazovky obsahuje příklad okamžitého okna.
Poznámka: příkaz cls vymaže immediate!
zarážky
zarážka je jedním z nejčastěji používaných ladicích nástrojů v jakémkoli programovacím jazyce. Zarážka umožňuje určit umístění, kde chcete, aby váš debugger přestal provádět kód. Přijdou obzvlášť vhod, když nechceš ladit všechny řádky kódu, spíše chcete zkontrolovat stav proměnných na konkrétních místech v kódu.
Chcete-li do kódu vložit zarážku, jednoduše klikněte pravým tlačítkem myši na šedou oblast na levé straně řádku skriptu, kam chcete vložit zarážku. Alternativně stisknutím klávesy F9 automaticky přidáte do řádku zarážku. Opětovným stisknutím klávesy F9 se odstraní zarážka.
můžete vidět na obrázku výše, že breakpoint byl přidán řádek, který spustí „spShowOddNumbers“ uložené procedury v SQL Server. Nyní ladit tento skript. Uvidíte, že debugger se spustí na prvním řádku skriptu.
Nyní stiskněte ALT + F5, nebo jít do debug menu znovu a klepněte na tlačítko Debug -> Pokračovat. Uvidíte, že místo ladění dalšího řádku ladicí program skočí přímo na nejbližší řádek s bodem přerušení.
můžete také vytvořit podmíněné zarážky. Podmíněné zarážky jsou zasaženy pouze tehdy, jsou-li splněny stanovené podmínky.
Chcete-li určit podmínku na zarážce, jednoduše klikněte pravým tlačítkem myši na zarážku a vyberte „podmínky“, jak je znázorněno na obrázku níže:
nové okno se otevře, kde si můžete zadat podmínky, které musí být splněny před tím, než zarážku může zasáhnout. Pokud chcete tuto zarážku jen být hit, když @LowerRange je větší než 15, můžete přidat toto jako podmínku, jak je znázorněno na obrázku níže:
Závěr
V tomto článku jsme diskutovali o tom, jaké různé možnosti se Microsoft SQL Server Management Studio poskytuje pro ladění skriptu nebo uložené procedury v SQL Server.
Další skvělé články od Ben
Jak používat SQL Server vestavěné funkce a vytvářet uživatelsky definované skalární funkce
Jak Používat Okno Funkce
Ladění uložené procedury v SQL Server Management Studio (SSMS)
- Autor
- Poslední Příspěvky
Zobrazit všechny příspěvky od Ben Richardson
- Práci s Power BI zpráva témata – 25. února 2021
- Power BI: Vodopád Grafy a Kombinované Vizuální – 19. ledna 2021
- Power BI: Podmíněné formátování a barvy dat v akci-leden 14, 2021