Udostępnij za pośrednictwem


Określ akcję dla punktu przerwania

Dotyczy:programu SQL Server

Akcja punktu przerwania określa niestandardowe zadanie, które debuger Transact-SQL wykonuje dla punktu przerwania. Jeśli zostanie osiągnięta określona liczba trafień i określony warunek punktu przerwania zostanie spełniony, debuger wykonuje akcję określoną dla punktu przerwania.

Zagadnienia dotyczące akcji

Domyślną akcją dla punktu przerwania jest przerwanie wykonywania, gdy zarówno liczba trafień, jak i warunek punktu przerwania są spełnione. Podstawowym zastosowaniem akcji debugera Transact-SQL jest wyświetlenie informacji w oknie danych wyjściowych debugera .

Komunikat jest podany w polu Pokaż komunikat w oknie danych wyjściowych: i jest określony jako ciąg tekstowy zawierający wyrażenia z informacjami z debugowanego Transact-SQL. Wyrażenia obejmują:

  • Wyrażenie Transact-SQL zawarte w nawiasach klamrowych ({}). Wyrażenia mogą obejmować zmienne Transact-SQL, parametry i wbudowane funkcje. Przykłady obejmują {@MyVariable}, {@NameParameter}, {@@SPID}lub {SERVERPROPERTY('ProcessID')}.

  • Jedno z następujących słów kluczowych:

    • $ADDRESS zwraca nazwę procedury składowanej lub funkcji zdefiniowanej przez użytkownika, w której ustawiono punkt przerwania. Jeśli punkt przerwania jest ustawiony w oknie edytora, $ADDRESS zwraca nazwę edytowanego pliku skryptu. $ADDRESS i $FUNCTION zwracają te same informacje w debugerze Transact-SQL.

    • $CALLER zwraca nazwę jednostki kodowej Transact-SQL, która wywołała procedurę składowaną lub funkcję. Jeśli punkt przerwania znajduje się w oknie edytora, $CALLER zwraca wartość <No caller available>. Jeśli punkt przerwania znajduje się w procedurze składowanej lub funkcji zdefiniowanej przez użytkownika wywoływanej z kodu w oknie edytora, $CALLER zwraca nazwę edytowanego pliku. Jeśli punkt przerwania znajduje się w procedurze składowanej lub funkcji zdefiniowanej przez użytkownika wywoływanej z innej procedury składowanej lub funkcji, $CALLER zwraca nazwę procedury wywołującej lub funkcji.

    • $CALLSTACK zwraca stos wywołań funkcji w łańcuchu, który wywołał bieżącą procedurę składowaną lub funkcję zdefiniowaną przez użytkownika. Jeśli punkt przerwania znajduje się w oknie edytora, $CALLSTACK zwraca nazwę edytowanego pliku skryptu.

    • $FUNCTION zwraca nazwę procedury składowanej lub funkcji zdefiniowanej przez użytkownika, w której ustawiono punkt przerwania. Jeśli punkt przerwania jest ustawiony w oknie edytora, $FUNCTION zwraca nazwę edytowanego pliku skryptu.

    • $PID i $PNAME zwracają identyfikator i nazwę procesu systemu operacyjnego, w którym działa instancja silnika bazy danych, na której jest uruchomiony Transact-SQL. $PID zwraca ten sam identyfikator co SERVERPROPERTY('ProcessID'), z tą różnicą, że $PID jest wartością szesnastkową, podczas gdy SERVERPROPERTY('ProcessID') jest wartością dziesiętną.

    • $TID i $TNAME zwracają identyfikator i nazwę wątku systemu operacyjnego uruchamiającego wsad Transact-SQL. Wątek jest związany z procesem uruchamiającym instancję aparatu bazy danych. $TID zwraca tę samą wartość co SELECT kpid FROM sys.sysprocesses WHERE spid = @@SPID, z tą różnicą, że $TID jest wartością szesnastkową, podczas gdy kpid jest wartością dziesiętną.

  • Możesz również użyć znaku ukośnika odwrotnego (\) jako znaku ucieczki, aby zezwolić na nawiasy klamrowe i ukośniki odwrotne w komunikacie: \{, \}i \\.

Określanie akcji

  1. W oknie edytora kliknij prawym przyciskiem myszy glif punktu przerwania, a następnie wybierz Actions z menu kontekstowego.

    -lub-

    W oknie punktów przerwania kliknij prawym przyciskiem myszy symbol punktu przerwania, a następnie wybierz Ustawienia w menu kontekstowym.

  2. W oknie dialogowym Ustawienia punktu przerwania wybierz opcję Działania.

  3. W dialogu "Pokaż komunikat w oknie wyjścia:" wprowadź wyrażenie.

  4. Wybierz pozycję Kontynuuj wykonywanie kodu, jeśli nie chcesz, aby punkt przerwania wstrzymał wykonywanie. Ta opcja jest aktywna tylko w przypadku wybrania opcji akcje.

  5. Wybierz pozycję Zamknij, aby zaimplementować zmiany.