| Termin | Definicja |
|---|---|
| Wykonywanie T-SQL w zadaniu | Wykonywanie T-SQL w zadaniu to najczęstszy typ kroku SQL Server Agent, uruchamiający polecenia bazodanowe. Rola kroku T-SQL w SQL Server AgentWykonywanie T-SQL w zadaniu jest typem kroku dostępnego w zadaniu usługi SQL Server Agent. Taki krok uruchamia instrukcje Transact-SQL na wskazanej instancji aparatu Database Engine. Zadanie może składać się z jednego kroku albo z wielu kroków wykonywanych według określonej kolejności. Każdy krok ma własną nazwę, polecenie, bazę danych, konto wykonawcze oraz reguły przejścia po sukcesie lub błędzie. W oknie właściwości kroku administrator wybiera typ Transact-SQL script (T-SQL), wskazuje bazę danych i wpisuje pojedynczą instrukcję, blok instrukcji albo odwołanie do skryptu zapisanym w pliku. Polecenie jest wykonywane przez silnik SQL Server, dlatego jego poprawność zależy od składni T-SQL, uprawnień konta oraz obiektów dostępnych w wybranej bazie. Sam SQL Server Agent nie interpretuje instrukcji jako poleceń systemu Windows. Zakres instrukcji i kontekst wykonaniaKrok może wykonywać między innymi zapytania Wybrana baza danych określa domyślny kontekst, w którym są rozwiązywane nazwy obiektów. Odwołanie bez prefiksu schematu, takie jak Obsługa błędów, wyników i kolejności krokówSQL Server Agent zapisuje wynik wykonania kroku jako sukces albo niepowodzenie, a konfiguracja zadania może określać dalsze działanie: zakończenie zadania, przejście do następnego kroku, ponowienie próby lub przejście do wskazanego kroku. Sam fakt wykonania polecenia nie oznacza, że operacja biznesowa zakończyła się poprawnie. Skrypt może zakończyć się komunikatem ostrzegawczym, zwrócić nieoczekiwany wynik albo częściowo zmienić dane, jeśli nie zastosowano odpowiedniej kontroli transakcji. W skryptach wieloinstrukcyjnych warto jawnie sprawdzać wartości Uprawnienia i diagnostyka wykonania zadaniaKrok T-SQL działa z uprawnieniami przypisanymi do wykonującego go kontekstu. Znaczenie mają członkostwo konta w rolach serwera, role bazy danych, uprawnienia do tabel, widoków, procedur i innych obiektów, a także własność procedur oraz mechanizmy łańcucha własności. Uprawnienia administratora użyte tylko po to, aby „naprawić” błąd kroku, mogą ukryć rzeczywistą przyczynę i rozszerzyć zakres dostępu bardziej, niż wymaga tego skrypt. Analizę problemu rozpoczyna się od historii zadania w SQL Server Agent. Należy sprawdzić nazwę kroku, czas rozpoczęcia, czas zakończenia, komunikat błędu, wybraną bazę, ustawienia ponawiania oraz zależności od wcześniejszych kroków. Następnie porównuje się ten kontekst z ręcznym uruchomieniem kontrolnego zapytania, używając tego samego loginu lub konta proxy, o ile konfiguracja na to pozwala. Błędy typu „obiekt nie istnieje”, „odmowa uprawnień”, przekroczenie limitu czasu i blokowanie przez inną transakcję wskazują na różne klasy przyczyn, dlatego nie powinny być traktowane jako jeden ogólny błąd SQL. Podczas diagnostyki środowiska serwerowego należy również zweryfikować, czy zadanie wskazuje właściwą instancję SQL Server, czy harmonogram nie uruchamia kilku równoległych kopii oraz czy poprzedni krok przekazuje oczekiwany stan do kolejnego. Szczególnej uwagi wymagają skrypty zależne od daty, strefy czasowej, poziomu zgodności bazy i ustawień sesji, ponieważ te same instrukcje mogą dawać inne rezultaty po zmianie konfiguracji instancji lub bazy danych. |