SQLShack
debugowanie jest jedną z najważniejszych, ale bolesnych części każdego procesu oprogramowania. Aby znaleźć błędy, musisz uruchomić kod krok po kroku, aby zobaczyć, która sekcja kodu jest odpowiedzialna za błąd. Nazywa się to debugowaniem środowiska wykonawczego.
na szczęście SQL Server Management Studio (SSMS) oferuje funkcje automatycznego debugowania, aby pomóc programistom debugować ich Skrypty. W tym artykule wyjaśnimy praktycznie, w jaki sposób SSMS może być używany do debugowania procedur składowanych w SQL Server, korzystając z bardzo prostego przykładu.
przykład
w naszym przykładzie użyjemy procedury składowanej „spShowOddNumbers”, która przyjmuje dwie liczby jako swoje parametry i wypisuje wszystkie nieparzyste liczby między tymi dwoma określonymi liczbami.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
Utwórz procedurę spShowOddNumbers
@LowerRange INT,
@UpperRange INT
AS
BEGIN
WHILE(@LowerRange < @UpperRange)
BEGIN
if(@lowerrange%2 != 0)
BEGIN
PRINT @LowerRange
END
SET @LowerRange = @LowerRange + 1
END
PRINT 'drukowane nieparzyste liczby pomiędzy’ + RTRIM(@lowerRange) + ’ i ’ + RTRIM(@UpperRange)
koniec
|
skrypt wywołujący procedurę składowaną w SQL Server:
1
2
3
4
5
6
7
8
9
|
DECLARE @lowerrange INT
SET @lowerrange = 5
DECLARE @upperrange INT
SET @upperrange = 20
EXEC spShowOddNumbers @lowerrange, @upperrange
DROP PROC spShowOddNumbers
|
Opcje debugowania
w SQL Server Management Studio masz wiele opcji debugowania.
Rozpocznij debugowanie
aby rozpocząć debugowanie procedury składowanej SQL server w SQL Server, naciśnij ALT + F5 lub przejdź do Debug – > Rozpocznij debugowanie, jak pokazano na poniższym rysunku:
po uruchomieniu debugera w oknie, w którym wywołujesz procedurę składowaną w SQL Server, zobaczysz, że na początku okna zapytania pojawi się żółty kursor, jak pokazano poniżej:
teraz rozpocząłeś debugowanie, możesz przejść przez kod.
przechodzenie przez skrypt
istnieją trzy opcje, aby przejść przez kod: 1) krok nad, 2) Krok Do I 3) Krok Na Zewnątrz. Możesz zobaczyć te opcje, klikając Debuguj, jak pokazano na zrzucie ekranu poniżej:
- krok nad (F 10)
krok nad po prostu przesuwa kursor do następnej linii wykonywalnego skryptu. Na przykład, jeśli debugger znajduje się w następującej lokalizacji w skrypcie:
kliknięcie kroku Over lub naciśnięcie F10 po prostu przesuwa kursor do następującej linii:
- Krok W (F 11)
jest to jedna z najważniejszych i najbardziej przydatnych funkcji debugowania. Krok w pozwala włamać się do skryptu procedury składowanej ze skryptu, który wywołuje tę procedurę składowaną.
ważne jest, aby wspomnieć, że Step Into działa jak Step Over. Jeżeli linia wykonywanego skryptu nie zawiera żadnego wywołania procedury składowanej w SQL serwerze.
np. jeśli wejdziesz w:
1SET @ upperrange = 20debugger po prostu przeniesie sterowanie do następnej linii:
1EXEC spShowOddNumbers @lowerrange, @upperrangepowyższa linia zawiera wywołanie procedury składowanej w SQL serwerze. Teraz, jeśli wejdziesz do tej linii skryptu, debugger przeniesie Cię do skryptu procedury składowanej 'spShowOddNumbers’, jak pokazano na poniższym rysunku.
- Step Out (Shift + F11)
Step Out jest przeciwieństwem Step Into. Jeśli znajdujesz się wewnątrz procedury składowanej w SQL Server i chcesz wrócić do skryptu, który wywołuje procedurę składowaną, możesz użyć Step Out. Na przykład, jeśli klikniesz krok na:
1WHILE (@LowerRange & lt; @UpperRange)
Uruchom kursor
Opcje debugowania wykonuj jedną linię naraz. Jeśli istnieje pętla lub długi fragment kodu, który chcesz, aby debugger pominął, możesz użyć opcji 'Uruchom do kursora’.
1
|
WHILE (@LowerRange < @ UpperRange)
|
na przykład, jeśli kursor znajduje się w następującym wierszu procedury składowanej w SQL Server i chcesz pominąć pętlę i przejść do instrukcji print po pętli. Możesz po prostu przejść do instrukcji drukowania i kliknąć „Uruchom do kursora”, jak pokazano poniżej:
pętla zostanie pominięta, a twój kursor wskaże instrukcję print.
okno lokalne
okno lokalne pomaga śledzić wartości zmiennych w skrypcie. W tym przykładzie mamy dwie zmienne @LowerRange i @UpperRange w naszym skrypcie. Na początku pętli while w procedurze składowanej w SQL serwerze wartość zmiennej @ LowerRange wynosi 5, podczas gdy zmienna @UpperRange wynosi 20, Jak pokazano na poniższym rysunku:
po wykonaniu pętli, a następnie sprawdzeniu wartości zmiennych, zobaczysz, że zmienne @LowerRange i @UpperRange będą miały wartość 20. Okno Locals wyświetla nazwę, Wartość i typ zmiennej. Korzystanie z okna Locals sprawia, że bardzo łatwo można śledzić zmiany wartości zmiennych w miarę postępów w skrypcie.
jeśli przypadkowo zamkniesz okno Locals i chcesz je przywrócić, możesz po prostu przejść do debugowania -> Windows -> Locals, jak pokazano poniżej:
okno Watch
okno Watch jest bardzo podobne do okna Locals. Jedyną różnicą jest to, że można dodawać lub usuwać zmienne z okna obserwuj, co może być przydatne podczas pracy z dużą liczbą zmiennych w większych skryptach.
aby dodać zmienną do okna zegarka, po prostu wybierz zmienną, kliknij prawym przyciskiem myszy, a następnie wybierz „Dodaj Zegarek”, jak pokazano na poniższym zrzucie ekranu:
podobnie, aby usunąć zmienną, kliknij prawym przyciskiem myszy nazwę zmiennej w oknie zegarka i kliknij „Usuń zegarek” z listy opcji. Jak pokazano poniżej:
stos wywołań
stos wywołań, jak sama nazwa wskazuje, wyświetla stos wywołań, które zostały wykonane do bieżącego punktu.
pierwsza linia stosu wywołań na rysunku powyżej mówi nam, że obecnie jest wykonywana procedura składowana spShowOddNumbers i w tej chwili debugger znajduje się w linii 14 pliku zawierającego tę procedurę składowaną. Druga linia wskazuje, że ta procedura składowana została wywołana ze skryptu w linii 7 sqlquery2.plik sql.
okno natychmiastowe
okno Natychmiastowe jest podobne do okna konsoli. Na przykład, można wykonywać operacje matematyczne w bezpośrednim oknie, sprawdzić wartości zmiennych, itd. Poniższy zrzut ekranu zawiera przykład okna natychmiastowego.
Uwaga: polecenie cls czyści okno immediate!
punkty przerwania
punkt przerwania jest jednym z najczęściej używanych narzędzi debugowania w dowolnym języku programowania. Punkt przerwania pozwala określić lokalizację, w której debugger ma przestać wykonywać kod. Są one szczególnie przydatne, gdy nie chcesz debugować wszystkich linii kodu, a chcesz sprawdzić stan zmiennych w określonych lokalizacjach w kodzie.
aby umieścić punkt przerwania w kodzie, po prostu kliknij prawym przyciskiem myszy szary obszar po lewej stronie wiersza skryptu, w którym chcesz umieścić swój punkt przerwania. Alternatywnie, naciśnięcie klawisza F9 spowoduje automatyczne dodanie punktu przerwania do linii. Ponowne naciśnięcie klawisza F9 spowoduje usunięcie punktu przerwania.
na powyższym rysunku widać, że do wiersza wykonującego procedurę składowaną „spShowOddNumbers” w SQL Server został dodany punkt przerwania. Teraz Debuguj ten skrypt. Zobaczysz, że debugger rozpocznie się w pierwszej linii skryptu.
Teraz naciśnij ALT + F5 lub przejdź ponownie do menu debugowania i kliknij Debug – > Kontynuuj. Zobaczysz, że zamiast debugowania następnej linii, debugger przeskoczy prosto do najbliższej linii z punktem przerwania.
możesz także tworzyć warunkowe punkty przerwania. Warunkowe punkty przerwania są osiągane tylko wtedy, gdy spełnione są określone warunki.
aby określić warunek punktu przerwania, po prostu kliknij go prawym przyciskiem myszy i wybierz „Warunki”, jak pokazano na poniższym rysunku:
otworzy się nowe okno, w którym można określić warunki, które mają być spełnione przed osiągnięciem punktu przerwania. Jeśli chcesz, aby ten punkt przerwania był trafiony tylko wtedy, gdy @LowerRange jest większy niż 15, możesz dodać ten warunek jako warunek, jak pokazano na poniższym obrazku:
wniosek
w tym artykule omówiliśmy, jakie różne opcje oferuje Microsoft SQL Server Management Studio do debugowania skryptu lub procedury składowanej w SQL Server.
inne świetne artykuły Bena
jak korzystać z wbudowanych funkcji SQL Server i tworzyć funkcje skalarne zdefiniowane przez użytkownika
Jak korzystać z funkcji okien
debugowanie procedur składowanych w SQL Server Management Studio (SSMS)
- Autor
- Ostatnie posty
Zobacz wszystkie posty, których autorem jest Ben Richardson
- praca Z Power BI raport tematów-luty 25, 2021
- Power BI: wykresy wodospad i połączone wizualizacje – styczeń 19, 2021
- Power BI: Formatowanie warunkowe i kolory danych w akcji-styczeń 14, 2021